oracle12c数据库迁移(单机)

将数据库安装好;

su - oracle

sqlplus "/as sysdba"
show con_name             CDB$ROOT
show pdbs
alter session set container=test;--pdb

--创建directory
create or replace directory dump_dir as '/u01/dump_dir';

--创建表空间
CREATE TABLESPACE testDATA LOGGING DATAFILE '/u01/app/oracle/oradata/test2/data001.dbf' SIZE 30G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
ALTER TABLESPACE testDATA ADD DATAFILE '/u01/app/oracle/oradata/test2/data002.dbf' SIZE 30G;

--创建用户
create user testuser identified by testuser default tablespace testDATA;

--授权
grant dba to testuser ;

--更新字符集 见后面

--数据导入

将expdp导出文件上传到/u01/dump_dir目录
root用户下:chown -R oracle:oinstall /u01/dump_dir

impdp testuser/[email protected]/test  DIRECTORY=dump_dir  DUMPFILE=testuser01.dmp  LOGFILE=imp_testuser01.log  remap_schema=testuser01:testuser REMAP_TABLESPACE=testDATA 01:testDATA

导入完成后通过plsqldeveloper连接测试检查

--以下为导入时存在报错或重新导入删除原用户、表空间等

字符集错误用户数据删除后重新导入(删除用户及相关表数据)
alter session set container=test;
drop user testuser cascade;

删除用户时报错:(由于字符集进行了修改,删除用户时提示如下,将字符集还原后可以正常删除)

drop user test_user cascade;

--删除directory
drop directory dump_dir;

--删除空表空间,包含物理文件(将此表空间与数据文件一同删除)
drop tablespace testDATA including contents and datafiles;

--更新字符集
--查看当前服务器字符集
select userenv('language') from dual;  --AMERICAN_AMERICA.WE8MSWIN1252  数据库原字符集
Server端字符集修改
将数据库启动到RESTRICTED模式下做字符集更改:
$ sqlplus "/as sysdba"
SQL> shutdown immediate;
SQL> startup mount;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL>-- alter database character set INTERNAL_USE UTF8;    ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
SQL> shutdown immediate;
SQL> startup;
SQL> exit;

impdp导入时报错:

sqlplus "/as sysdba"
execute dbms_metadata_util.load_stylesheets;

打开CDB和PDB
1,首先,确保您已经连接到CDB(容器数据库)sqlplus "/as sysdba"
2,确认CDB已经打开:SELECT NAME, OPEN_MODE FROM V$DATABASE;
 如果显示OPEN_MODE不是READ WRITE,则需要打开数据库:ALTER DATABASE OPEN;
3,打开所有PDB或特定的PDB:
 打开所有PDB:ALTER PLUGGABLE DATABASE ALL OPEN;
 或者只打开特定的PDB:ALTER PLUGGABLE DATABASE MZYTJ OPEN;