两个数据库之间的内容 全导出、导入
PS:因导出的是window,导入的是Linux,还需要做好字符集的编码调整
https://blog.csdn.net/shipeng1022/article/details/53066558
window
CMD: set NLS_LANG=SIMPLIFIEDCHINESE_CHINA.ZHS16GBK
linux
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
一、导出
window环境下操作 CMD 命令窗口
导出命令:exp 账号/口令@ip/orcl file=文件名.bmp owner=账号;
exp c##test/[email protected]/orcl file=d:lwtoracle.dmp owner=c##test
导出成功后
二、导入
以下是linxu环境下操作
将导出的来文件上传服务器,然后服务器传到docker容器内
oracle11g 为docker容器启动的容器名称, docker ps -a 可查看
目录路径都是自己创建的目录,放哪里都可以
docker cp /home/oracle_backups/lwtoracle.dmp oracle11g:/home/oracle/oracle_backups/
执行导入操作
进去到docker容器里面,然后再进入oracle用户 su - oracle
添加不替换
imp khfw/passward@helowin file=/home/oracle/oracle_backups//lwtoracle.dmp fromuser=c##test touser=khfw log=/home/oracle/log/imp_tab.log
覆盖
imp khfw/khfwpas@helowin ignore=y file=/home/oracle/oracle_backups//lwtoracle.dmp fromuser=c##test touser=khfw log=/home/oracle/log/imp_tab.log
ps:日志的文件夹也需要先创好。
导入的命令参数说明
USERID 用户名/密码
FULL 是否全库导入 (Y 或 N),默认为 N
BUFFER 数据缓冲的大小
FROMUSER 导出的用户列表,即导入文件是从哪个用户导出的
TOUSER 导入的用户列表,即要到哪个用户中
FILE 导入文件,是dmp文件
SHOW 只列出文件内容 (Y 或 N) ,默认为 N
TABLES 要导入的表名列表
IGNORE 在导入过程中是否忽略错误 , 默认为 N
RECORDLENGTH 记录的长度,默认为operating system-dependent
GRANTS 导入权限 (Y 或 N),默认为Y
INCTYPE 导入的类型是否为递增(Y 或 N),默认为 N
INDEXES 导入索引 (Y 或 N) ,默认为Y
COMMIT 在导入过程中,是否导入一行数据,提交一行 (Y 或 N)默认为N,即在每个表导入后,进行提交
ROWS 导入行数据 (Y 或 N) ,默认为 Y
PARFILE 参数文件名
LOG 输出的日志文件
DESTROY 是否覆盖表空间上的数据文件 (Y 或 N) 默认为N
INDEXFILE 将表或索引信息写到指定的文件中
CHARSET 导出文件的字符集,默认为 NLS_LANG
ANALYZE 在导入时执行ANALYZE语句 (Y 或 N) 默认为 Y
FEEDBACK 在导入时每个几行显示进度,默认为0