Oracle数据库的导出和导入
本次数据库的导入导出操作是导出公司环境的Oracle数据库,再导入本地数据库,采用impdp和expdp命令进行导入导出操作。
一、导出52数据库
1、用system用户登录到数据库,查看是否有创建dba_directories:select * from dba_directories;
如未创建,请登录到oracle进行创建:CREATE OR REPLACE DIRECTORY DIR AS \’/u01/dbbackup\’;(注:如对应的磁盘目录下没有该文件夹,还需要手动创建文件夹)
2、本地打开cmd窗口,输入导出命令并执行:expdp system/123456@210.10.10.52/oanet schemas=gd_base directory=dump_dir dumpfile=gd_base.dmp logfile=gd_base.log exclude=TABLE:\”in(\’SYS_FILE\’)\” version=11.2.0.4.0
出现上图即导出完成,可在服务器对应的dba_directories(泵目录)路径下找到导出的dmp文件和导出日志
3、导出命令详解
命令:
(1)expdp system/123456@210.10.10.52/oanet schemas=gd_base directory=dump_dir dumpfile=gd_base.dmp logfile=gd_base.log exclude=TABLE:\”in(\’SYS_FILE\’)\” version=11.2.0.4.0 #单个数据库导出
(2)expdp system/11@201.10.0.51/orcl schemas=gd_base,gd_dbwizard,gd_public directory=dump_dir dumpfile=51_shengxin_20180416.dmp logfile=51_shengxin_20180416.log exclude=TABLE:\”in(\’SYS_FILE\’)\” version=11.2.0.4.0 #多个数据库导出
(3)expdp system/123456@210.11.20.52/oanet schemas=gd_base,gd_dbwizard directory=dump_dir CONTENT = METADATA_ONLY dumpfile=METADATA_ONLY_20181009.dmp logfile=export_20181009.log EXCLUDE=TABLE:\”LIKE \\’BD%\\’\”,TABLE:\”LIKE \\’YW%\\’\” #只导出表结构
各参数详解:
二、导出本地数据库备份
操作与上一部分内容一致,这里就不过多描述。
三、将导出的dmp文件导入本地数据库
1、将导出的52数据库放至本地数据库对应的dba_directories下
用system用户登录到数据库,查看是否有创建dba_directories:select * from dba_directories;
如上图,不存在DUMP_DIR,因此需要登录到oracle进行创建:CREATE OR REPLACE DIRECTORY DUMP_DIR AS \’E:\data\’;
将导出的52数据库放至本地数据库对应的dba_directories对应的路径下。【注:如使用root用户上传文件,需要“chmod 777 gd_base.dmp”赋予文件权限】
2、删除本地数据库的用户名和表空间(如导入的数据库为不存在该用户,可跳过该步骤)
1 drop user gd_base cascade; 2 drop user gd_dbwizard cascade; 3 drop tablespace WORKFLOW01 including contents and datafiles; 4 drop tablespace WORKFLOW02 including contents and datafiles;
5 drop tablespace WORKFLOWTEMP including contents and datafiles;
3、数据库创建临时表空间和用户
1 --创建临时表空间 2 CREATE SMALLFILE 3 TEMPORARY TABLESPACE "TEMP11" TEMPFILE 4 \'d:\app\ljj\product\11.2.0\TEMP11.ora\' SIZE 200M 5 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 5M; 6 ALTER DATABASE DEFAULT TEMPORARY TABLESPACE "TEMP11"; 7 8 --创建表空间1-- 9 CREATE SMALLFILE 10 TABLESPACE "WORKFLOW01" 11 LOGGING 12 DATAFILE 13 \'d:\app\ljj\product\11.2.0\WORKFLOW01.ora\' SIZE 14 2048M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 15 16 --创建表空间2-- 17 CREATE SMALLFILE 18 TABLESPACE "WORKFLOW02" 19 LOGGING 20 DATAFILE 21 \'d:\app\ljj\product\11.2.0\WORKFLOW02.ora\' SIZE 22 1024M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 23 24 ALTER DATABASE DATAFILE \'d:\app\ljj\product\11.2.0\WORKFLOW01.ora\' AUTOEXTEND ON NEXT 200M MAXSIZE 20480M; 25 ALTER DATABASE DATAFILE \'d:\app\ljj\product\11.2.0\WORKFLOW02.ora\' AUTOEXTEND ON NEXT 200M MAXSIZE 2048M; 26 27 --创建用户-- 28 create user gd_base 29 identified by "1qaz2wsx" 30 default tablespace WORKFLOW01 31 temporary tablespace TEMP11 32 profile DEFAULT; 33 34 --Grant/Revoke role privileges 授予用户connect 和 dba权限-- 35 grant connect to gd_base with admin option; 36 grant dba to gd_base with admin option; 37 38 --Grant/Revoke system privileges 授予用户增删改查等权限-- 39 grant alter any table to gd_base with admin option; 40 grant create any table to gd_base with admin option; 41 grant delete any table to gd_base with admin option; 42 grant drop any table to gd_base with admin option; 43 grant insert any table to gd_base with admin option; 44 grant select any table to gd_base with admin option; 45 grant update any table to gd_base with admin option; 46 grant unlimited tablespace to gd_base with admin option; 47 48 注: 49 a.注意表空间的创建路径,tempfile是临时表空间文件的路径,datafile是表空间的数据文件的路径。默认是Oracle安装目录+表空间名; 50 b.WORKFLOW01表空间拓展到20G,可根据需要导入的dmp文件大小配置,防止导入过程中出现问题或者中断;
4、打开本地cmd命令窗口,执行导入命令
命令:impdp gd_base/1qaz2wsx@127.0.0.1/oanet DIRECTORY=DIR DUMPFILE=gd_base.dmp LOGFILE=gd_base.log REMAP_SCHEMA=gd_base:gd_base
导入完成如图:
可在对应的dba_directories对应的路径下找到生成的导入日志文件;
同时导入多个库的命令:impdp oracle/oracle@192.168.0.502:1521/oanet DIRECTORY=DUMP_DIR DUMPFILE=502_20200813.dmp LOGFILE=502_20200817daoru.log SCHEMAS=gd_base,gd_dbwizard,dbcenter
5、使用工具连接本地数据库,可见已成功导入gd_base数据库