引言
不知不觉中,人气竟然50W+了。真是荣幸之至,何德何能有这么多兄弟来看我的文章。我今天整个狠活,再带来一篇非常非常非常干货的文章。
在前面的文章中,我们写过:Oracle10.2.0.1升级10.2.0.5.19、Oracle11.2.0.1.0升级11.2.0.4.3。网上Oracle升级的文章非常多,而本篇文章带来的是Oracle升级终结篇:Oracle10.2.0.1升级11.2.0.4.3。
一、oracle升级知识点
1、版本说明
a、主的数据库版本号
b、数据库的维护版本号
c、应用服务器版本号
d、和特定组件相关的不同版本号
e、特定平台的版本号
2、名词解释
CPU(Critical Patch Update)升级关键补丁
和安全相关的漏洞补丁的集合,补丁更新补丁通常是累积的,每一个CPU包中包含着从上一个CPU包之后到现在所有修补的补丁,当你安装CPU之前,应该查看一下之前的CPU补丁情况。
PSU(Patch Set Update)更新补丁集
它是一个累积的补丁包,包含了自上一次PSU之后到现在所有的补丁包。PSU10.2.0.4.4 包含了PSU10.2.0.4.3的全部及10.2.0.4.3到10.2.0.4.4之间新的。
Tools
升级的过程全把一个已经存在的oracle数据库系统(包括相关的应用程序),升级到11G,这个升级的过程在所有操作系统上都类似,在某些操作系统可能有一些特定的操作细节,每个升级包中的readme中都会有说明,所以当我们拿一个新的CPU或PSU去进行升级的话,首先你要看readme的内容,这个补丁多了,我们可能按照同样一个步骤去做吗?不一定,但大体上类似。
(1)、Database Upgrade Assistant (DBUA)
提供图形界面操作方式,辅助我们升级。在安装oracle时图形界面中调用DBUA,也可以随时启动DBUA图形界面。对于主版本升级或patch release upgrade升级时,我们都建议用DBUA来操作。
(2)、Manual upgrade using SQL scripts and utilities(手动执行脚本升级,怎么打补丁,怎么Upgrade)
(3)、Export and Import utilities
(4)、CREATE TABLE AS SQL statement
3、更新和升级路线图
4、My Oracle Support下载升级包
从11g开始,它的PatchSet包含了一个完整的安装版和补丁,不像9i、10g的PatchSet中只包含补丁。
5、我们的升级路线
从升级路线图中,我们可以看出来,Oracle10.2.0.1无法直接升级11.2.0.4.3。所以,我们的升级路线如下:
10.2.0.1.0->10.2.0.5.0->10.2.0.5.19->11.2.0.4.0->11.2.0.4.3
二、安装Oracle10.2.0.1
1、软件环境
操作系统:redhat5.5(32位)
oracle版本:10.2.0.10(32位)
2、oracle安装
2.1、linux准备工作
1、root用户编辑本地yum源配置文件
vi /etc/yum.repos.d/base.repo #追加如下内容
2、将本地光般连接到虚拟机中
3、root用户挂载光盘到/mnt目录下
4、root用户使用yum解决安装oracle需要的依赖包(安装源码包,必须要用到gcc编译)
yum install -y binutils compat-db control-center gcc* glibc libXp libstdc++ libstdc++-devel make openmotif sysstat control-center
5、root用户修改/etc/hosts
6、root用户修改主机名称
注解:
(1)、hostname DB(临时修改主机名)
(2)、vi /etc/sysconfig/network(永久修改主机名)
7、root用户设置内核参数(vi /etc/sysctl.conf)
kernel.shmall = 2097152
/*共享内存,单位是页面数,每个页面数是4K,就是块大小,操作系统ext3的,一个块是4K,咱们设置共享内存8G ,官方推荐值,生产中可以自行改大 8GB/4KB=8388608KB /4KB=2097152(页) */
kernel.shmmax = 2147483648
/*单个共享内存段的最大尺寸,单位字节,单次提取最多2G,不是数据仓库完全够用 2G=2*1024*1024*1024(byte)*/
#插入下面信息
kernel.sem = 250 32000 100 128 #信号量
fs.file-max = 65536 #文件句柄的最大数量
net.ipv4.ip_local_port_range = 1024 65000 #端口范围
net.core.rmem_default = 262144 #默认读内存大小
net.core.rmem_max = 262144 #读内存最大值
net.core.wmem_default = 262144 #默认写存大小
net.core.wmem_max = 262144 #写内存最大值
8、root用户修改操作系统版本号(vi /etc/redhat-release)
Red Hat Enterprise Linux Server release 3 (Tikanga)
/*修改版本号,oracle10g只支持到redhat版本4,如果不修改,检测安装环境会报错*/
9、root用户操作使内核生效
10、root用户操作限制oracle用户的策略(vi /etc/security/limits.conf #追加)
参数说明:
core - 限制内核文件的大小
date - 最大数据大小
fsize - 最大文件大小
memlock - 最大锁定内存地址空间
nofile - 打开文件的最大数目
rss - 最大持久设置大小
stack - 最大栈大小
cpu - 以分钟为单位的最多 CPU 时间
noproc - 进程的最大数目
as - 地址空间限制
maxlogins - 此用户允许登录的最大数目
实际是 Linux PAM,插入式认证模块,用来限制用户的策略
11、root用户操作将上面的策略每次登录生效(vi /etc/pam.d/login #追加)
/* limits.conf是pam_limits.so的配置文件,将上面的策略每次登录生效 */
12、root用户操作增加组、oracle用户及设置密码
13、oracle用户设置环境变量
14、让环境变量生效
15、创建目录并授权
2.2、上传解压oracle包
1、上传oracle安装包到/tmp下(我使用的是FileZilla工具)
2、oracle用户解压缩oracle安装包
2.3、图形化安装
使用Oracle用户安装oracle库(图形界面)
安装oracle软件详细步骤
选择 高级安装
自动识别安装目录,因为在前面配置了环境变量
选择 安装企业版
默认识别Oracle_home目录,因为在前面配置了环境变量
检查依赖条件
选择 仅安装软件
安装信息汇总
开始安装
操作授权脚本
根据提示,切换到root用户执行脚本,操作截图如下:
安装结束
创建数据库详细步骤
在命令行下直接输入dbca
欢迎界面
选择创建数据库(如果是第一次创建数据库,只能创建数据库和管理模板可以使用)
类型选择 一般用途
填写全局数据库名及SID(注意大小写)
不用配置OEM管理工具(后面可以手工单独配置)
设置数据库用户帐号的口令(所有用户设置同一个密码)
设置数据库的存储(默认文件系统)
设置数据库文件的存放位置(默认选项)
设置数据库的恢复选项(后面可以手工单独配置)
快速恢复:区用于恢复数据,以免系统发生故障时丢失数据; 启用归档用于将数据库设置为ARCHIVELOG模式,使得当数据库出现失败时可以完全恢复数据库数据
指定是否安装示例方案,并运行自定义脚本(不用安装)
初始化参数配置(初始化参数、数据库字符集和连接模式)
数据库存储(用指定控制文件、数据文件、重做日志文件、名称和尺寸)
创建选项(指定建立数据库,还是保存为数据库模板)
开始数据库的建立
数据库建立完成后,就会出现如下对话框
系统会锁定除SYS、SYSTEM、DBSNMP、SYSMAN之外的所有其他用户,咱们解锁SCOTT用户
单击“确定”按钮,最后单击“退出”按钮完成数据库建立的全部过程
3、验证oracle安装结果
登录到oracle数据库环境下,查看当前库状态
从上图的查询结果,我们可以看出来,当前数据库是可读可写状态,oracle已经成功的安装了。
三、Oracle10.2.0.1升级10.2.0.5.19
环境描述
1、操作系统
rhel-server-5.5-x86_64
2、现在已有Oracle版本
Oracle 10.2.0.1.0
3、升级之后Oracle版本
Oracle 10.2.0.5.19
准备工作
1、上传并解压补丁包
[oracle@db8 tmp]$ unzip p8202632_10205_Linux-x86-64.zip
2、查看安装补丁情况
[oracle@db8 ]$ cd $ORACLE_HOME/OPatch/
[oracle@db8 OPatch]$ ./opatch lsinventory
3、检查数据库的时区版本
SQL>select version from v$timezone_file;
4、关闭所有Oracle服务进程
关闭OEM
[oracle@db8 ~]$ emctl stop dbconsole
关闭isqlplus应用服务器
[oracle@db8 ~]$ isqlplusctl stop
关闭监听
[oracle@db8 ~]$ lsnrctl stop
关闭实例
5、进行数据备份
此处我使用的是冷备份,这样保险一些。热备份需要数据库正常运行,难免会有占用。
Oracle相关的全部配置都位于$ORACLE_BASE目录
[oracle@db8 ~]$ tar -zcvPf `date '+%F'`_oracle.tar.gz $ORACLE_BASE
查看生成的备份文件
创建备份目录
[oracle@db8 ~]$ mkdir ora_backup
备份:日志文件、数据文件、控制文件
[oracle@db8 ~]$ cp $ORACLE_BASE/oradata/$ORACLE_SID/* ora_backup/
备份:参数文件
[oracle@db8 ~]$ cp $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora ora_backup
6、确认显示终端
换成oracle用户,登录图形化界面操作系统
升级Oracle
1、升级Oracle软件
解压安装介质
[oracle@db8 tmp]$ unzip p8202632_10205_Linux-x86-64.zip
解压后文件详情
[oracle@db8 tmp]$ cd Disk1/
[oracle@db8 Disk1]$ ll
解压后生成Disk1目录,里面patch_note.htm 有详细的升级补丁的介绍,建议升级补丁前,应该好好看看patch_note.htm,里面介绍了Oracle Database、Oracle Real Application Clusters、Oracle Database Client、Oracle Database Vault等各类情况升级。
oracle用户图形化安装
欢迎界面
从环境变量中自动识别oracle_home目录
不接收Oracle的安全更新(大部分兄弟都没有oracle帐号)
升级操作之前检查依赖条件
汇总信息
开始安装升级
换成root用户操作
换回oracle用户图形界面操作
手工升级oracle数据库
1、升级数据库字典
[oracle@db8 ~]$ sqlplus / as sysdba
SQL> STARTUP UPGRADE
SQL> @?/rdbms/admin/catupgrd.sql
中间内容较多,此处省略.................
由于catupgrd.sql重建过程中,可能造成一些对象失效,需要运行utlrp.sql,重新编译PL/SQL packages。
2、编译无译对象
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
3、升级后检查
SQL>set line 200
SQL>col ACTION_TIME for a30
SQL>col ACTION for a20
SQL>col NAMESPACE for a10
SQL>col VERSION for a10
SQL>col BUNDLE_SERIES for a5
SQL>col COMMENTS for a25
SQL>select * from dba_registry_history;
4、查看组件有效性
SQL> COL COMP_NAME FOR A50
SQL> COL VERSION FOR A12
SQL> COL STATUS FOR A12
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
使用OPatch安装小补丁
1、关闭所有Oracle服务进程
关闭OEM
[oracle@db8 ~]$ emctl stop dbconsole
关闭isqlplus应用服务器
[oracle@db8 ~]$ isqlplusctl stop
关闭监听
[oracle@db8 ~]$ lsnrctl stop
关闭实例
2、使用OPatch安装小补丁
解压安装介质
[oracle@db8 tmp]$ unzip p20299014_10205_Linux-x86-64.zip
解压后文件详情
[oracle@db8 tmp]$ cd 20299014/
[oracle@db8 20299014]$ ll
解压后生成20299014目录,里面README.html有详细的升级补丁的介绍,建议升级补丁前,应该好好看看README.html里面介绍了Oracle Database、Oracle Real Application Clusters、Oracle Database Client、Oracle Database Vault等各类情况升级。
运行opath apply应用补丁
[oracle@db8 ~]$ cd /tmp/20299014/
[oracle@db8 20299014]$ $ORACLE_HOME/OPatch/opatch apply
从报错指示中可以看出,OPatch现有的这个工具版本过低,要对它进行升级到10.2.0.5.0
3、升级OPatch工具
备份现有的OPatch目录
[oracle@db8 ~]$ mv $ORACLE_HOME/OPatch/ $ORACLE_HOME/OPatch.bak
解压高版本OPatch工具到ORACLE_HOME
[oracle@db8 ~]$ unzip /tmp/p6880880_102000_Linux-x86-64.zip -d $ORACLE_HOME/
检查OPatch工具版本
[oracle@db8 ~]$ $ORACLE_HOME/OPatch/opatch version
4、使用OPatch安装小补丁
运行opath apply应用补丁
[oracle@db8 ~]$ cd /tmp/20299014/
[oracle@db8 20299014]$ $ORACLE_HOME/OPatch/opatch apply
提示输入邮件,直接回车,跳过即可
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: 输入Y
Is the local system ready for patching? [y|n] 输入y
随后会刷屏如下,内容过多,只截取一部分
最后提示成功
升级后的操作
1、查看升级状态
[oracle@db8 20299014]$ $ORACLE_HOME/OPatch/opatch lsinv
[oracle@db8 ]$ $ORACLE_HOME/OPatch/opatch lsinv -bugs_fixed|grep SPU
2、升级数据库字典
[oracle@db8 ]$ cd $ORACLE_HOME/rdbms/admin
[oracle@db8 admin]$ sqlplus / as sysdba
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> @utlrp.sql
3、升级后检查
SQL> set line 200
SQL> col ACTION_TIME for a30
SQL> col ACTION for a20
SQL> col NAMESPACE for a10
SQL> col VERSION for a20
SQL> col BUNDLE_SERIES for a5
SQL> col COMMENTS for a25
SQL> select * from dba_registry_history;
4、修改兼容性参数
SQL> show parameter compatible;
SQL> alter system set compatible='10.2.0.5.0' scope=spfile;
5、重新启动数据库
SQL> shutdown immediate;
SQL> STARTUP
6、检查数据库的时区版本
7、查看数据库当前状态
SQL> select open_mode from v$database;
至此,Oracle10.2.0.1升级10.2.0.5.19就全操作完成了。
8、关闭oracle实例
关闭实例,为后续的升级工作提前做好准备。
四、Oracle10.2.0.5.19升级11.2.0.4.3
1、linux准备工作
配置内核参数
[root@db8 ~]# vi /etc/sysctl.conf
内核配置生效
[root@db8 ~]# /sbin/sysctl -p
修改环境变量
1台机器安装2个库,注意目录。注释掉原来10g的ORACLE_HOME,添加新11g的ORACLE_HOME。
[oracle@db8 ~]$ vi ~/.bash_profile
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
环境变量生效
[oracle@db8 ~]$ source ~/.bash_profile
[oracle@db8 ~]$ env | grep -i oracle_home
[oracle@db8 ~]$ echo $ORACLE_HOME
安装依赖包
[root@db8 ~]# yum -y install binutils-* compat-libstdc++-* compat-libcap1-* elfutils-libelf-* elfutils-libelf-devel-* gcc* gcc-c++-* glibc* glibc-common-* glibc-devel-* glibc-headers-* ksh-* libaio-* libaio-devel-* libgcc-* libstdc++-* libstdc++-devel* make-* sysstat-* unixODBC-* unixODBC-devel-* numactl-devel-* pdksh-* kernel-headers*
创建oracle安装目录
[root@db8 ~]# mkdir -p /oracle/app
[root@db8 ~]# chmod -R 777 /oracle/app
[root@db8 ~]# chown -R oracle.oinstall /oracle/app
2、上传oracle介质
3、重新加载环境变量
[oracle@db8 ~]$ source ~/.bash_profile
[oracle@db8 ~]$ env | grep -i oracle_home
[oracle@db8 ~]$ echo $ORACLE_HOME
4、解压oracle介质
[oracle@db8 tmp]$ cd /tmp/
[oracle@db8 tmp]$ unzip p13390677_112040_Linux-x86-64_1of7.zip
[oracle@db8 tmp]$ unzip p13390677_112040_Linux-x86-64_2of7.zip
5、图形化安装
5.1、使用Oracle用户
5.2、安装oracle软件
a、配置安全更新
是否通过oracle帐号,接收来自于oracle的安全更新
如果你有oracle帐号,在上面填写你的邮箱地址,然后勾选选项。如果没有oracle帐号,上面的邮箱不用填写,此处也不用勾选。
你没有设置一个邮箱地址。你不想了解配置中的关键安全问题?
b、下载更新软件
本次安装是为了更新软件,软件更新包括对安装程序系统要求检查补丁集更新(PSUS)的建议更新,和其他推荐的修补程序。
(1)通过oracle帐号下载
(2)使用提前下载好的软件更新
(3)跳过更新
我们是安装oracle,所以选择第3项,跳过更新
c、安装选项
选择下面这些安装的选项之这
注意:如果你想更新一个已经存在的oracle 11gR2实例,请选择"Upgrade an existing database"选项
(1)创建和配置一个数据库
(2)只安装数据库软件
(3)升级一个已经存在的数据库
此处选择:只安装数据库软件。后面我们再单独定制的,安装数据库实例。
d、Grid安装选项
选择一种你想安装的数据库类型
(1)安装单实例数据库
(2)安装oracle RAC集群数据库
(3)安装oracle RAC集群的一个节点
此处选择:安装单实例数据库。后面我们再单独讲RAC集群的安装
e、选择语言
选择 英语。虽然有简体中文,但是不建议选择,翻译的非常不舒服
f、数据库版本
你想安装哪个版本的数据库?
此处有2类选择,一种是企业版,一种是标准版(功能有限制)。在生产中我们选择企业版,它的功能是最全的。
g、安装位置
在oracle用户设置环境变量时,在.bash_profile中配置了ORACLE_BASE和ORACLE_HOME的路径,此处在安装oracle时,它会自动识别。
h、Create Inventory
选择Inventory的位置,保持默认即可。这个位置是ORACLE_BASE下创建的oraInventory目录,用于注册ORACLE_HOME下安装的数据库组件及其版本,存放oracle软件安装的目录信息。oracle数据库软件的升级、增删组件,都要用到Inventory。oracle的界面会创建一个有oraInst.ora的文件,指定全局的Inventory。
i、操作系统组
选择oracle使用的操作系统用户组
j、依赖条件检查
此处依赖检查时,提示:物理内存小了,少一个rpm包。可以忽略,并不影响我们安装oracle。
k、汇总信息
l、安装产品
安装过程中,弹框提示:使用root用户执行如下脚本
m、完成
6、升级数据库
6.1、修改环境变量
注释掉11g的ORACLE_HOME,打开10g的ORACLE_HOME
[oracle@db8 ~]$ vi ~/.bash_profile
6.2、重新加载环境变量
[oracle@db8 ~]$ source ~/.bash_profile
[oracle@db8 ~]$ env | grep -i oracle_home
[oracle@db8 ~]$ echo $ORACLE_HOME
6.3、关闭10g的实例
如果10g的实例未关闭,关闭10g的实例
6.4、修改环境变量
注释掉10g的ORACLE_HOME,打开11g的ORACLE_HOME
[oracle@db8 ~]$ vi ~/.bash_profile
6.5、重新加载环境变量
[oracle@db8 ~]$ source ~/.bash_profile
[oracle@db8 ~]$ env | grep -i oracle_home
[oracle@db8 ~]$ echo $ORACLE_HOME
6.6、DUBA(oracle用户图形操作)
1、已经在你的库中发现了一些无效的对象,你要注意一下这些对象。要求升级过后,你要判断一下有些对象是否无效。
2、升级前你可以先对OEM配置相关的内容进行备份
3、要求你执行PURGE_DBA_RECYCLEBIN,清空DBA对应的回收站
4、Oracle建议在升级数据库前,收集数据字典的统计信息
5、确保你的参数文件中有 EVENT 或 TRACE_EVENT参数的设置
单开一个窗口,切换为10g配置
[oracle@db8 ~]$ vi ~/.bash_profile
重新加载环境变量
[oracle@db8 ~]$ source ~/.bash_profile
[oracle@db8 ~]$ env | grep -i oracle_home
[oracle@db8 ~]$ echo $ORACLE_HOME
清空所有用户的回收站
7、验证升级结果
7.1、查看oratab文件
7.2、修改环境变量
注释掉10g的ORACLE_HOME,打开11g的ORACLE_HOME
[oracle@db8 ~]$ vi ~/.bash_profile
7.3、重新加载环境变量
[oracle@db8 ~]$ source ~/.bash_profile
[oracle@db8 ~]$ env | grep -i oracle_home
[oracle@db8 ~]$ echo $ORACLE_HOME
7.4、查看升级状态
[oracle@db8]$ $ORACLE_HOME/OPatch/opatch lsinv
7.5、确认数据库升级信息
断开oracle用户的会话,重新登录oracle用户。容易产生环境变量混乱,有可能报如下错误:
SP2-1503: Unable to initialize Oracle call interface
SP2-0152: ORACLE may not be functioning properly
[oracle@db8 ~]$ sqlplus / as sysdba
SQL> set line 200
SQL> col ACTION_TIME for a30
SQL> col ACTION for a20
SQL> col NAMESPACE for a10
SQL> col VERSION for a20
SQL> col BUNDLE_SERIES for a5
SQL> col COMMENTS for a25
SQL> select * from dba_registry_history;
7.6、修改兼容性参数
SQL> show parameter compatible;
SQL> alter system set compatible='11.2.0.4.0' scope=spfile;
重新启动数据库
SQL> shutdown immediate;
SQL> STARTUP
SQL> show parameter compatible;
7.7、查看数据库当前状态
SQL> select open_mode from v$database;
8、关闭所有进程
关闭OEM
[oracle@db8 ~]$ emctl stop dbconsole
关闭isqlplus应用服务器
[oracle@db8 ~]$ isqlplusctl stop
关闭监听
[oracle@db8 ~]$ lsnrctl stop
关闭实例
退出sqlplus
查看进程确认
9、上传介质并解压
上传介质
解压升级包
[oracle@DB8~]$ cd /tmp/
[oracle@DB8 tmp]$ unzip p18522509_112040_Linux-x86-64.zip
10、升级
10.1、使用OPatch升级
[oracle@DB8]$ cd /tmp/18522509
[oracle@DB 818522509]$ $ORACLE_HOME/OPatch/opatch apply
从报错提示中可以看出,当前OPatch工具的版本是11.2.0.3.4。现有的这个工具版本过低,下载最新版本的OPatch工具。
10.2、升级OPatch
备份现有的OPatch目录
[oracle@DB8~]$ mv $ORACLE_HOME/OPatch/ $ORACLE_HOME/OPatch.bak
解压高版本OPatch工具到ORACLE_HOME
[oracle@db8 ~]$ unzip /tmp/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME/
检查OPatch工具版本
[oracle@db8 ~]$ $ORACLE_HOME/OPatch/opatch version
10.3、使用OPatch升级
[oracle@DB8]$ cd /tmp/18522509
[oracle@DB8 18522509]$ $ORACLE_HOME/OPatch/opatch apply
Do you want to proceed? [y|n] 输入y
提示输入邮件,直接回车,跳过即可
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: 输入Y
Is the local system ready for patching? [y|n] 输入y
随后就是刷屏的过程,只截取最后成功部分
10.4、升级数据库字典
[oracle@DB8~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@DB8 admin]$ sqlplus / as sysdba
SQL> startup
SQL> @catbundle.sql psu apply
11、升级后验证
11.1、查看数据库补丁
[oracle@DB8~]$ $ORACLE_HOME/OPatch/opatch lsinventory
[oracle@DB8~]$ $ORACLE_HOME/OPatch/opatch lsinv -bugs_fixed|grep Bug
11.2、确认数据库升级信息
[oracle@DB8~]$ sqlplus / as sysdba
SQL> set pages 2000 lines 500
SQL> col action format a17
SQL> col namespace format a10
SQL> col version format a10
SQL> col comments format a30
SQL> col action_time format a30
SQL> col bundle_series format a15
SQL> select * from DBA_REGISTRY_HISTORY;
11.3、确认数据库各组件信息
[oracle@DB8~]$ sqlplus / as sysdba
SQL> set pages 2000 lines 500
SQL> col COMP_NAME format a50
SQL> col version format a10
SQL> col STATUS format a10
SQL> col MODIFIED format a50
SQL> SELECT COMP_NAME, VERSION, STATUS,MODIFIED FROM SYS.DBA_REGISTRY;
结束语
到此本篇文章就结束了,送给那些:
1、准备学习Oracle的朋友们
2、已经学习了Oracle,但是没有在Linux环境下安装成功oracle的朋友们
3、对Oracle感兴趣、对Linux感兴趣的朋友们
4、Oracle刚入门的朋友们
最近到了联想新财年winterplan的时候,一直在做计划赶项目。有一段时间没有写关于Oracle的博文了,感谢一直关注我的新老朋友,有你们的支持我会一起写下去!
标签:0.1,数据库,0.4,11.2,db8,ORACLE,SQL,oracle,HOME From: https://blog.51cto.com/51power/5712894