oracle 12c迁移数据及遇到的问题

因为要换服务器,重新安装oracle,就想着用下最新的12c。花了整整一天时间,记录过程与问题如下。

一、下载oracle 12c:

官网上的12.1.0.2.0有一半确实是下不了的,用百兆光纤下也是到一半失败。所以只能下载12.1.0.1.0.

二、安装?oracle 12c:

下载完成后解压第一部分,照以往经验,两个部分压缩包放在一起,是会一起解压出来的。所以我就没去检查,然后就悲催了,装了好久说找不到文件,失败了。。所以大家一定记得检查,不然浪费大把时间。如果发现第二部分没解压,就自己单独解压出来,然后剪切database\stage\Components目录下的几个文件夹到第一部分的对应目录下就可以了。中间安装选项就不介绍了,中文的,看自己需求选择。如果第一次像我一样装失败了,把安装到一半的目录全部干掉,不然后面不会覆盖安装的,浪费几g的空间。

三、创建用户及赋予权限?

安装完成了,cmd执行sqlplus登录system用户。然后create user username identitfied by password;创建用于导入旧数据的用户。grant create session,create table,unlimited tablespace to username;赋予新创建的用户创建session,创建表,使用任意表空间的权限。然后就可以等待旧数据库的dmp直接导入了。

?四、安装PL/SQL

PL/SQL可视化管理数据库确实方便很多,必然要装一个。因为PL/SQL只有32位,需要做一些额外动作。下载instantclient-basic-nt-12.1.0.1.0.zip (一定得是32位的,不要下错了版本,Oracle官网有下载),将其解压至Oracle安装目录的Product下(我的是:E:\app\orcl\product)。拷贝数据库NETWORK/ADMIN目录下(E:\app\orcl\product\12.1.0\dbhome_2\NETWORK\ADMIN)的tnsnames.ora和listener.ora文件到解压出来的instantclient_12_1目录下(E:\app\orcl\product\instantclient_12_1)。下载PLSQL+Developer10.0.5.1710及其汉化补丁分别安装。找到你的PLSQL_Developer安装的目录(我的是:E:\PLSQL Developer),新建一个start.txt文档,内容如下:@echo off

set path=E:\app\orcl\product\instantclient_12_1

set ORACLE_HOME=E:\app\orcl\product\instantclient_12_1

set TNS_ADMIN=E:\app\orcl\product\instantclient_12_1

set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

start plsqldev.exe

修改后缀名为bat,然后执行此start.bat,此bat会设置临时环境变量并启动plsqldev,如果不设系统环境变量的话,以后都需要从此bat启动。注意三个环境变量的值修改为自己电脑上对应的。这时有可能弹出说缺少某个dll的对话框,去网上下载那个dll放到目录下就可以了。打开PLSQL_Developer后,取消登陆,进入主界面。1.点击--工具--首选项--连接:

2.把上面的注销改为提交

3.OCI库改为带有instantclient_10_2的路径。

4.应用--确定--关闭PLSQL_Developer重新运行就可以了。

???????五、旧数据库导出

停旧数据库的相关应用,关闭需要导出的表的外键关联(不关闭的话,在导入时因为找不到关联实体,会拒绝所有外键关联的行)cmd执行exp 后面就是中文交互式了,主要设置导出文件名,导出模式,是否导出数据等。?具体自己百度。

六、新数据库导入

将dmp文件拷贝到新服务器上,在新服务器上cmd执行imp,也是中文交互式,主要设置导入模式,导入的文件,是否导入数据等。我的模式是用户模式,导入整个用户数据,因为imp是insert方式导入,如果之前导入失败,一定要删除旧表或者旧记录。导入完成后,打开pl为旧数据库和新数据库都重新开启关联。

七、迁移tomcat应用

?我的应用不知道为什么,用内网ip无法连接上数据库,报IO 异常:The Network Adapter could not establish the connection。所以只能换用localhost代替,但是这样就无法调试了,好坑。我的url串是:jdbc:oracle:thin:@localhost:1521:orcl。上面的异常解决后,又报:ORA-28040:No matching authentication protocol。网上的解决方式就两种,更新jdbc驱动和修改SQLNET.ALLOWED_LOGON_VERSION。

我最后反正是通过在E:\app\orcl\product\12.1.0\dbhome_2\NETWORK\ADMIN\sqlnet.ora中添加如下语句:

?SQLNET.ALLOWED_LOGON_VERSION=8

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

才解决,具体是不是只要其中一句,懒得试了,有知道的朋友可以说下。

我之前是先试了更新jdbc驱动ojdbc6或者7都是不行,才开始修改SQLNET.ALLOWED_LOGON_VERSION。然后从12,11,10,9,8,7或者把所有都括号起来一个个试过来。修改SQLNET.ALLOWED_LOGON_VERSION不用重启数据库或者监听,也不用重启应用,开始应该先试这个的,哎。?

我最后整个app的状态是:app用的jdk1.6编译,用的ojdbc7,并在tomcat7.0下运行。我之前的jdbc版本是ojdbc14,是不是跟jdbc版本没关也不试了,有验证的朋友可以说下。网上还有说什么修改tnsnames.ora?和listener.ora里面的host的,然后还要重启监听,完全浪费我时间。

时间: 2024-08-09 16:09:18

oracle 12c迁移数据及遇到的问题的相关文章

Oracle 12C RAC数据迁移

源端:12C RAC primay backup file 目标端:12C 单实例 部分总结: 1 pfile修改 2 disable redo thread N 3  drop logfile group N 4 rename logfile 5 取消log 远程传输 如果primary 处于maximum availablity mode,控制文件会侦测log_archive_dest_N,以备日志传输是否正常?所以不加处理会报错: lgwr(ora-16072): minimum of 1

详解oracle 12c通过数据泵expdp/impdp工具实现对数据备份、恢复

简介 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用1.实现逻辑备份和逻辑恢复2.数据库用户之间移动对象3.数据库之间移动对象4.实现表空间搬移 实验环境 系统环境:centos7.4Oracle服务IP地址:192.168.100.99光盘挂载目录:/mnt/sr0安装相关目录:/opt 命令步骤 一.创建测试用户并授权 1.创建数据备份目录 [[email protected] ~]# mkdir /opt/

Oracle 12c利用数据泵DataPump进行Oracle数据库备份

1.查看数据库版本 SQL> select version from v$instance; VERSION ----------------- 12.1.0.2.0 2.sysdba用户登录sqlplus SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB

Oracle 12c迁移pluggable database到异库

1.源库: SQL> show pdbs CON_ID CON_NAME  OPEN MODE  RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED  READ ONLY  NO 3 PDB  READ WRITE NO 4 TEST  READ WRITE NO 2.目标库: SQL> show pdbs CON_ID CON_NAME  OPEN MODE  RESTRI

HANA 与 Oracle 12c哪一个更快

本文来自于对Which is Faster HANA or Oracle 12C?的阅读笔记,列举了其中的要点.并不代表我的观点. 简介 SAP声称HANA是最快的数据库,因此SAP的新ERP系统S4不再支持Oracle Oracle 12c的一个新功能是对于同一表,可以在行式和列式间转换 SAP想让用户认为HANA是独特的技术,不过在这篇文章中,可以看到内存计算和列式存储都不是SAP独有的技术 硬件速度和数据库设计的混淆 HANA将两个不同的概念混淆到一起: 1. 硬件层面,HANA需要将数据

Oracle 12C 新特性之在线重命名、迁移活跃的数据文件

Oracle 数据库 12c 版本中对数据文件的迁移或重命名不再需要太多繁琐的步骤,可以使用 ALTER DATABASE MOVE DATAFILE 这样的 SQL 语句对数据文件进行在线重命名和移动.而当此数据文件正在传输时,终端用户可以执行查询,DML以及 DDL 方面的任务.另外,数据文件可以在存储设备间迁移,如从非 ASM 迁移至 ASM,反之亦然. 一. 重命名数据文件: -- 注意,我这里是在名为 PDB01 的 pdb 容器内演示的. SQL> show con_nameCON_

ORACLE 12C 冷备份方式的数据迁移

实验对象:两台linux单机的oracle 12C 数据库(大版本和小版本都一致),数据迁移采取冷备份的方式.目标机器的路径跟源库不一致,需要重建controlfile. 迁移步骤 首先关闭监听,和kill掉连接的应用ps -ef | grep LOCAL=NO | awk '{print ($2)}' | xargs kill -9 创建pfilecreate pfile='/tmp/inittest.ora1012' from spfile;  查看数据文件,日志文件的路径,日志文件路径 S

ORACLE 12C 冷备份方式的数据迁移(rename方式)

之前写了一篇通过修改控制文件来修改路径不一的问题,现在使用方法二通过rename来修改路径不一的问题 实验对象:两台linux单机的oracle 12C 数据库(大版本和小版本都一致),数据迁移采取冷备份的方式. 迁移步骤 首先关闭监听,和kill掉连接的应用ps -ef | grep LOCAL=NO | awk '{print ($2)}' | xargs kill -9 创建pfilecreate pfile='/tmp/inittest.ora1012' from spfile;  查看

Oracle 12c pdb的数据泵导入导出

12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb.在为pdb做数据泵导入导出时和传统的数据库有少许不同.           1,需要为pdb添加tansnames           2,导入导出时需要在userid参数内指定其tansnames的值,比如 userid=user/[email protected]   数据泵导入导出例子 1.查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl [[email pro