1.逻辑目录创建

--登陆数据库
sqlplus as sysdba
--创建目录,用于把数据库文件导出到目录下,目录需要提前创建好
create directory dir_dump  as 'D:\hbdata';
--把权限赋予你导出时用的账号
grant read,write on directory dir_dump to hb;
--推出
exit


2.数据库导出

下面是几种导出方式,一般选择导出用户即可。

1)导出用户
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir;

2)导出表
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;

3)按查询条件导
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery='where deptno=20';

4)按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmptablespaces=temp,example;

5)导整个数据库
expdp system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;

(注:我的导出过程20分钟左右,导出文件100G大小)

导出后把文件传输到目标服务器。

3.安装数据库19c

直接去官网下载安装包,需要登陆账号。

在现在过程中登陆原数据库,确定数据库字符集以及表空间。

--查询字符集
select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
--查询表空间及文件
SELECT tablespace_name, 
file_id, 
file_name, 
round(bytes / (1024 * 1024), 0) total_space 
FROM dba_data_files 
ORDER BY tablespace

下载完成后开始安装,前几步默认即可。

在第四步,安装数据库时字符集语言要与原数据库保持一致,安装路径需要为英文字母,大写的最好。取消勾选容器数据库。

(注:安装及创建数据库过程需要15分钟左右。)

4.导入数据库

登陆刚刚创建的数据库执行创建用户及表空间。(语句中用户名及文件路径要改成你自己的。)

create user hb identified by bxhb;

grant connect,resource,dba to hb;

create directory dir_dump  as 'D:\hbdata';

grant read,write on directory dir_dump to hb;

整理创建表空间语句,对比现有数据库与源数据库缺少哪些表空间都要创建。创建语句如下:

--注意名字改成你自己的
create tablespace TSP_1705_INDEX--表空间名字 
--表空间位置需要自己创建好,文件会自己创建
datafile 'D:\hbdata\hb\TSP_1705_INDEX.dbf' 
size 1000M --初始大小
autoextend on  --设置自动增长
next 50M  
maxsize unlimited;--不限制增长

Oracle中最大单个文件限制在30G,因此在原数据中一个表空间可能有多个对应文件,我们也要提前与之对应的多个文件。代码如下:

--注意名字改成你自己的
alter tablespace TS_1703 add DATAFILE
 'D:\hbdata\hb\TS_1703_01.dbf' 
size 10240m
 autoextend on next 1024m
 maxsize 30G;

上面语句执行可能比较慢,执行完成后即可导入数据库。记得退出sqlplus。

--注意名字改成你自己的
impdp hb/bxhb@hb DUMPFILE=EXPDP.DMP DIRECTORY=dir_dump full=y table_exists_action=replace

这个过程不翻车的话30分钟左右,执行完成后,把窗口中信息复制到文档中,把执行过程中出现的错误解决,(没用的错忽略即可)。

5.安装客户端

客户端官网下载19c,也可以安装11g的客户端,32位客户端也可以连接64位服务端。

(注:如果需要,修改服务端监听文件时记得先备份!!!)

 

更多推荐

Oracle数据库迁移11g到19c