目的oracle11g环境移到oracle19G
准备
1.oracle11g数据库全表导出。
简单案例:
expdp d1b/d1b directory=data_dir dumpfile=pdb1.dmp logfile=pdb1.log full=y
2.安装oracle19G,看网上教程。
3.学习oracle多租户,cdb,pdb相关知识。
开始
创建用户
报错:ORA-65096: 公用用户名或角色名无效 -》oracle要C##开头。
保持用户名不变方法
只能用pdb类型数据库。
常用查询SQL (注意都是在当前容器信息。不同容器有各自的信息)
select status from v$instance; //数据库实例
SELECT * FROM v$version; //数据库版本
select sys_context('USERENV','CON_NAME') from dual; //查询当前容器
select con_id, dbid, name, open_mode from v$pdbs; //查询当前cdb子容器或者当前pdb容器,
select cdb from v$database; //查询cdb状态 YES是启动
SELECT * FROM DBA_USERS ; //查询当前容器用户
select con_id, name from v$datafile //查询数据文件
select * from dba_directories; //查询路径信息
select default_tablespace from dba_users where username='DB' //查询用户的表空间
SELECT * FROM DBA_tablespaces //查询表空间
创建pdb数据库
CREATE pluggable DATABASE pdb1 admin USER pdbadmin
identified BY root111 roles=(dba)
file_name_convert=('/u01/app/oracle/oradata/ECOLOGY/pdbseed',
'/u01/app/oracle/oradata/ECOLOGY/dhdb');
配置tnsnames文件
目录参考:/u01/app/oracle/product/19.2.0/db_1/network/admin
多加一个实例:原来基础,复制一个,改名称即可。
然后重启数据库,重启监听
shutdown immediate
startup
lsnrctl status
lsnrctl start
lsnrctl stop
说明:
pdb1:pdb数据库名
pdbadmin:新建用户名
root111 :新建用户名密码
第一个路径:是pdbseed的存放文件目录。pdbseed是创建pdb数据库模板。
第二个路径:是新建pdb数据库存放文件目录。
前提:mkdir dhdb (新建好文件目录)
创建用户和授权
create user D1B111 identified by db111 default tablespace users account unlock;
grant connect,resource,unlimited tablespace,dba to d1b111;
grant create table , create view to d1b11 ;
创建表空间
CREATE TABLESPACE ERPDATA DATAFILE '/u01/app/oracle/oradata/ECOLOGY/nfdhdb/ERPDATA_01.DBF'
SIZE 50M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE 30720M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
USERS
创建路径名和授权 (导入和导出用到)
drop directory data_dir
create directory data_dir as '/home/oracle/impdp';
select * from dba_directories;
grant read,write on directory data_dir to d1b111;
导入数据
impdp d11b/db22@nfdhdb DIRECTORY=data_dir DUMPFILE=NFDHTEST_20221105.dmp
FULL=y logfile=NFDHTEST_impdp.txt
导入报错
报错:ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-292
方案1:查询当前容器是否有该路径。
方案2:确定路径是否正确:/和\
方案3:给/home/oracle/impdp文件授权每个层级都加上:chmod 777 文件名。
连接
查看有导入成功有数据。正常。
应用连接url
测试要改为/才可以连接。
url=“jdbc:oracle:thin:@10.60.6.91:1521:nfdh1db”
改为:
url=“jdbc:oracle:thin:@10.60.6.91:1521/nfdh1db”