怎么把数据从oracle11迁到oracle12
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把数据从oracle11迁到oracle12相关的知识,希望对你有一定的参考价值。
oracle 11.1可以直接升级到12.1的版本,详细可以见mos相关可以直接升级的指导os:RHEL 5.5
oracle:11.1.0.7, 单实例
方式:采用out-of place的升级方式
11.1的ORACLE_HOME为/u01/app/oracle/product/11.1.7/db_1
12.1的ORACLE_HOME为/u01/app/oracle/product/12.1.0/db_1
1,rman备份原有数据库;
2,安装oracle 12的软件到/u01/app/oracle/product/12.1.0/db_1;
3,清除回收站,检查无效的对像和无效的组件,确认隐含参数使用情况.必须的对像.
例12c xdb是必须要组件,
4,收集gater_dictionary_stats和gather_fixed_objects_stats,aud$对像清空,
5,对数据库库进行逻辑检查 ,rman:backup validate check logical database;
6,在11.1的库实行升级预检查.SQL> @/u01/app/oracle/product/12.1.0/db_1/rdbms/admin/preupgrd.sql;
该过程会生成一个log文件,对于其中的问题需要解决然后才能升级.
7, 使用12C的orapwd生成新的密码文件主,使用原来的spfile生成一个pfile。
8,关闭原来的实例,使用新的ORACLE_HOME启动数据库
[oracle@localhost ~]$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 12.1.0.1.0 Production on Sat May 10 13:34:57 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> conn / as sysdba;
Connected to an idle instance.
SQL> startup upgrade pfile=\'/home/oracle/12.ora\';
ORACLE instance started.
9, 并行运行脚本(12c新特性),并行度8,会启动16个并行服务器进程.
[oracle@localhost admin]$ /u01/app/oracle/product/12.1.0/db_1/perl/bin/perl catctl.pl -n 8 catupgrd.sql
Serial Phase #:54 Files: 1 Time: 157s
Serial Phase #:55 Files: 1 Time: 141s
Serial Phase #:56 Files: 1 Time: 48s
Grand Total Time: 2439s
10,以正常的方式启动数据,并且创建spfile
SQL> startup nomount pfile=\'/home/oracle/12.ora\';
ORACLE instance started.
Total System Global Area 2288205824 bytes
Fixed Size 2290848 bytes
Variable Size 1275071328 bytes
Database Buffers 989855744 bytes
Redo Buffers 20987904 bytes
SQL> create spfile from pfile=\'/home/oracle/12.ora\';
File created.
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 2288205824 bytes
Fixed Size 2290848 bytes
Variable Size 1275071328 bytes
Database Buffers 989855744 bytes
Redo Buffers 20987904 bytes
Database mounted.
Database opened.
11,重新收集gather_dictionary_stats和gather_fixed_objects_stats
SQL> exec dbms_stats.gather_dictionary_stats;
PL/SQL procedure successfully completed.
SQL> exec dbms_stats.gather_fixed_objects_stats;
PL/SQL procedure successfully completed.
12,重新编译无效对像
SQL> @utlprp 8; (cpu核数的一到两倍)
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN 2014-05-10 14:40:44
.................
13, 运行utlu121s.sql和utluiobj.sql检查无效的对像. 参考技术A 在OOW 2012上Tom kyte介绍了Oracle新一代重量级数据库产品12c 的12个新特性, 目前Open World 2012的主要PDF都可以下载了,传送门在此:Search Content Catalog for Oracle OpenWorld 2012 sessions。
Tom的《12 Things About The Latest Generation of Database Technology》下载地址。
这里我们来领略下Tom眼中的12个特性增强:
#1 Even better PL/SQL from SQL, 直接在SQL中嵌入PL/SQL对象并运行,猜测可能优化了SQL engine 和 PL/SQL engine 2种的代码引擎之间的交互,以获得比之前传统的SQL调用函数更少的上下文切换。
#2 Improved Defaults 增强了DEFAULT, default目前可以直接指代sequence了,同时增强了default充当identity的能力
Default to a sequence
Default when null inserted
Identity Type
Metadata-only Defaults for NULL columns
#3 Increased Size Limit for VARCHAR2, NVARCHAR2, and RAW Data Types
Varchar2, NVarchar2 and Raw这些数据类型的大小上限可以扩展到32k,和其在PL/SQL中的变量类型一样了,当然过长可能导致像LOB那样OUT OF LINE存放
#4 Easy Top-N and pagination queries ,更易用的Top-N和页码查询
提供了类似mysql中limit的语法,Row Limiting Clause
FETCH FIRST 5 ROWS ONLY; ==》仅fetch前5行
FETCH NEXT 0.01 PERCENT ROWS ONLY; 仅fetch 0.0.1%的行数
#5 Row Pattern Matching 增强的行模式匹配
提供了新的模式匹配子句 match_recognize,可以通过match_recognize 定义正则语法
#6 Partitioning Improvements 分区特性增强 , 包括异步维护全局索引的drop和truncate分区操作, 以及Interval + Reference分区方式
Asynchronous Global Index Maintenance for DROP and TRUNCATE
partition
Cascade Functionality for TRUCATE and EXCHANGE partition
Multiple partition operations in a single DDL
Online move of a partition (without DBMS_REDEFINITION)
Interval + Reference partitioning
#7 Adaptive Execution Plans 自适应执行计划, 该特性可以谈得上神奇,最终的执行计划将基于执行中获得的行,列倾斜造成的问题将被克服
#8 Enhanced Statistics 统计信息增强, 加入了第11级的动态采样, 对于并行查询自动打开11级的动态采样,混合直方图
#9 Temporary UNDO 临时UNDO撤销,临时表的UNDO数据可以放到TEMP中,有助于减少 UNDO表空间中的undo数据,进一步减少redo的产生, 从而使得Active Data Guard中的临时表允许做DML
设置方法为:ALTER SYSTEM/SESSION SET TEMP_UNDO_ENABLED=true|false
#10 Data Optimization 数据优化包括自动压缩和分层
ALTER TABLE orders
ILM ADD CompressionPolicy
COMPRESS Partitions for Query
AFTER 90 days from creation;
ALTER TABLE sales
ILM ADD MovePolicy
TIER Partitions TO ‘Archive_TBS’
ON OrdersClosedPolicy;
#11 Application Continuity 应用持续性增强, 事务卫士(Transaction Guard)保证了解事务结果:
#12 Pluggable Databases 可插入数据库:
一个容器数据库(container database)中可以存放多个Pluggable Databases
对于外部应用程序和开发者来说Pluggable Databases看上去就是一个普通的版本12.1之前的数据库
用户连接到Pluggable Databases时看到的是一个单一数据库和从前一样
新的管理模式
数据库管理员DBA可以连接到Pluggable Database并仅仅管理该数据库
超级DBA可以连接到容器数据库并如同管理单系统镜像那样管理
RAC中的每一个实例均打开容器数据库并可以选择打开哪些Pluggable Database
内建的多分租(Multi-tenancy)
每个Pluggable Database均独立于其他Pluggable Database
Resource Manager特性被扩展到Pluggable Database中
Pluggable Databases特性可以带来的好处:
加速重新部署现有的数据库到新的平台的速度
加速现有数据库打补丁和升级的速度
从原有的DBA的职责中分离部分责任到应用管理员
集中式管理多个数据库
提升RAC的扩展性和故障隔离
与Oracle SQL Developer 和Oracle Enterprise Manager高度融合本回答被提问者和网友采纳
oracle迁表结构和数据
背景:把一些表和数据从某库迁到另一个库
1.命令框:
exp yktsh/yktsh_2019@orcl30 file=d:yktsh20191201.dmp log=d:daochu;
exp 导出命令
yktsh/yktsh_2019@orcl30 用户密码
file=d:yktsh20191201.dmp 导出路径和文件
log=d:daochu 导出日志
imp yktsh/yktsh_2019@orcl file=d:yktsh20191201.dmp log=d:daoru full=y
imp 导入命令
yktsh/yktsh_2019@orcl 用户密码
file=d:yktsh20191201.dmp 导入路径和文件
log=d:daoru 导入日志
full=y ?
以上是关于怎么把数据从oracle11迁到oracle12的主要内容,如果未能解决你的问题,请参考以下文章