Oracle 19c数据库非PDB数据库迁移至PDB的详细步骤说明
在Oracle 19c中,我们可以将非PDB(Public DataBase)数据库迁移至PDB(Private DataBase),这个过程需要一些特定的步骤,包括创建PDB、将非PDB的数据迁移到PDB、修改应用连接等,以下是详细的步骤:
创建PDB
1、打开SQL*Plus,以sys用户登录。
2、执行以下命令创建PDB:
CREATE PLUGGABLE DATABASE pdb_name ADMIN USER pdb_admin IDENTIFIED BY pdb_admin_password;
pdb_name
是你要创建的PDB的名称,pdb_admin
是管理PDB的用户,pdb_admin_password
是该用户的密码。
3、执行以下命令启动PDB:
ALTER PLUGGABLE DATABASE pdb_name OPEN;
将非PDB的数据迁移到PDB
1、在源非PDB上,执行以下命令创建数据泵导出文件:
expdp system/sys_password@source_db_name directory=dir_name dumpfile=dumpfile_name.dmp logfile=logfile_name.log content=metadata_only;
system/sys_password
是源非PDB的用户名和密码,source_db_name
是源非PDB的名称,dir_name
是数据泵目录的名称,dumpfile_name.dmp
是导出文件的名称,logfile_name.log
是日志文件的名称。
2、在目标PDB上,执行以下命令创建数据泵导入文件:
impdp pdb_admin/pdb_admin_password@target_db_name directory=dir_name dumpfile=dumpfile_name.dmp remap_schema=source_schema:target_schema remap_tablespace=source_tablespace:target_tablespace;
pdb_admin/pdb_admin_password
是目标PDB的用户名和密码,target_db_name
是目标PDB的名称,dir_name
是数据泵目录的名称,dumpfile_name.dmp
是导出文件的名称,source_schema
和target_schema
是源和非PDB的模式名称,source_tablespace
和target_tablespace
是源和非PDB的表空间名称。
修改应用连接
1、修改应用连接字符串,将原来的连接字符串中的非PDB名称替换为新的PDB名称。
2、重启应用,使新的连接字符串生效。
验证迁移结果
1、在目标PDB上,执行以下命令查看数据:
SELECT * FROM table_name;
table_name
是你想要查看的表的名称。
2、在应用中执行一些操作,如插入、更新或删除数据,然后再次查询数据,验证数据是否正确。
以上就是Oracle 19c数据库非PDB数据库迁移至PDB的详细步骤,希望对你有所帮助。
相关问题与解答:
问题1:在创建PDB时,我可以使用其他用户作为管理员吗?
答:可以的,你可以使用任何具有SYSDBA权限的用户作为PDB的管理员,这个用户必须存在于源非PDB中。
问题2:在迁移数据时,我需要将所有的数据都迁移到PDB吗?
答:不需要,你只需要迁移你需要的数据,你可以使用数据泵的过滤选项来选择你需要迁移的数据。
问题3:在修改应用连接时,我需要修改所有的应用吗?
答:这取决于你的应用是如何连接到数据库的,如果你的应用是通过硬编码的方式连接到数据库的,那么你可能需要修改所有的应用,如果你的应用是通过配置文件连接到数据库的,那么你只需要修改配置文件即可。
问题4:在验证迁移结果时,如果我发现数据不正确,我应该怎么做?
答:你应该检查你的迁移步骤是否正确,你应该检查你的应用是否正确地使用了新的连接字符串,如果以上都没有问题,那么你应该检查你的数据是否正确地从源非PDB迁移到了目标PDB。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/505584.html