一、备份导出前的注意事项
1.导出导出的时候需要注意数据库的字符集是否一致,使用工具导入的话也需要确认工具的字符集
–查询服务端的编码命令
SELECT * FROM Nls_Database_Parameters where parameter = 'NLS_CHARACTERSET';
–查询客户端软件的编码命令
SELECT Userenv('language') FROM dual where parameter = 'NLS_CHARACTERSET';
2.导出时要确认导出文件的目录,使用oracle自带的逻辑目录或者自己创建逻辑目录,需要用到目录名称和目录路径,在导出时只需指定目录名称,导出的文件存放在目录路径下
–2.1.查看oracle已有的目录,
select * from dba_directories;
–2.2.自己创建逻辑目录
create directory 目录名称 as ‘目录路径’;
–2.3.如果是自己创建的目录,需要给用户添加读写此文件夹的权限
grant read,write on directory dir to scott;
3.需要确认要导出的目录中空间是否够用,空间不足时导入会停止
二、导出的两种方式
2.1.使用exp导出
–2.1.1.导出命令
exp 用户名/密码@数据库IP:端口号/orcl file=导出的目标文件名称 tables=要导出的表名(多个表时用逗号隔开)
exp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO,POLICY_INFO;
–2.1.2.导入命令
imp 用户名/密码@数据库IP:端口号/orcl file=导出的目标文件名称 tables=要导出的表名(多个表时用逗号隔开)
imp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO,POLICY_INFO;
2.2.使用数据泵expdp导出
–2.2.1.导出命令
expdp 用户名/密码@数据库IP:端口号/orcl file=导出的目标文件名称 tables=要导出的表名(多个表时用逗号隔开)
expdp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO,POLICY_INFO;
–2.2.2.导入命令
impdp 用户名/密码@数据库IP:端口号/orcl file=导出的目标文件名称 tables=要导出的表名(多个表时用逗号隔开)
impdp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO,POLICY_INFO
三、在备份时遇到的坑
–3.1. 要备份的表如果是分区表,不能使用exp导出命令.只能使用数据泵导出方式.
–3.2. dmp文件导入时,数据库中不能存在同名的表
–3.3. 导入时,数据库表的表空间要一致,在命令中可以修改表空间,在导入导入命令后面加上 ‘remap_tablespace=原表空间名:新表空间名’
impdp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO remap_tablespace=OLD_SPACE:NEW_SPACE
– 3.4. 导出时如果表空间不足,需要为当前表空间新增数据文件来扩容,数据文件可以设置初始大小,并设置自增,也可以限定最大值
ALTER TABLESPACE 表空间名 ADD DATAFILE ‘数据文件路径及名称’ size 文件初始大小 autoextend on (设置是否开启自增) MAXSIZE 文件最大值;
ALTER TABLESPACE TJ_DATA ADD DATAFILE '/oracle/oradata/ds.dbf' size 1024M autoextend on MAXSIZE 20480M;
–3.5.导入导出有三种类型,分别是表方式(T方式),用户方式(U方式),全库方式(Full方式),这里只记录了表导出方式
–3.6.如果数据库密码中有@符号,需要用’ “”’ ” 将密码内容包起来,先用单引号,再用双引号