前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于create database语句在10g,11g中的不同(r5笔记第88天)

关于create database语句在10g,11g中的不同(r5笔记第88天)

作者头像
jeanron100
发布2018-03-16 11:12:28
7190
发布2018-03-16 11:12:28
举报
文章被收录于专栏:杨建荣的学习笔记

最近抽空练习了下手工建库,在10g的时候基本都在20分钟搞定,在11g中其实还可以更快,因为10g中需要配置的admin目录,需要创建bdump,udump之类的目录等等,在11g都被adr给默认替代了,只要提供了$ORACLE_BASE,就会默认在$ORACLE_BASE下生成对应的目录结构。 其它步骤完全可以按照10g的脚本来使用,没有任何问题,但是如果反过来,在11g里使用的一些语句在10g中可能会有一些问题,这一点也是在今天的测试中发现的一个小细节。 首先我在11g的库中创建了一个数据库实例,使用create database来完成,创建语句类似下面的形式。

代码语言:javascript
复制
CREATE DATABASE mynewdb
   USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password 
代码语言:javascript
复制
LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') SIZE 100M BLOCKSIZE 512,
           GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') SIZE 100M BLOCKSIZE 512,
           GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') SIZE 100M BLOCKSIZE 512
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   CHARACTER SET AL32UTF8
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE '/u01/app/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
   SYSAUX DATAFILE '/u01/app/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE users
      DATAFILE '/u01/app/oracle/oradata/mynewdb/users01.dbf'
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/u01/app/oracle/oradata/mynewdb/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs
      DATAFILE '/u01/app/oracle/oradata/mynewdb/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

这个语句基本不用修改太多的地方,基本就是文件的路径,结构部分不用做任何修改。 11g的实例很快就创建完成了。然后就想直接引用这个现成的脚本,简单修改一下路径,数据库实例名,在10g的环境中创建一个数据库实例。 但是却报出了下面的错误。

代码语言:javascript
复制
SQL> @createdb.sql
   LOGFILE GROUP 1 ('/u02/oracle/oradata/TEST10G/disk1/redo01a.log','/u02/oracle/oradata/TEST10G/disk2/redo01b.log') SIZE 100M BLOCKSIZE 512,
                                                                                                                               *
ERROR at line 4:
ORA-02165: invalid option for CREATE DATABASE

对于这个错误自己还是很疑惑,不知道是哪儿出了问题,开始以为是做路径替换的时候出了问题,排除了乱码等的影响。最后发现语句实在没有其它的问题了。 这个时候把10g的创建语句拿出来比较一下,发现有3处不同之处。

代码语言:javascript
复制
CREATE DATABASE mynewdb
   USER SYS IDENTIFIED BY pz6r58
   USER SYSTEM IDENTIFIED BY y1tz5p
 LOGFILE GROUP 1 ('/u01/oracle/oradata/mynewdb/redo01.log') SIZE 100M,
           GROUP 2 ('/u01/oracle/oradata/mynewdb/redo02.log') SIZE 100M,
           GROUP 3 ('/u01/oracle/oradata/mynewdb/redo03.log') SIZE 100M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   MAXINSTANCES 1
   CHARACTER SET US7ASCII
   NATIONAL CHARACTER SET AL16UTF16
   DATAFILE '/u01/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
   EXTENT MANAGEMENT LOCAL
   SYSAUX DATAFILE '/u01/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE tbs_1
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/u01/oracle/oradata/mynewdb/temp01.dbf' 
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs 
      DATAFILE '/u01/oracle/oradata/mynewdb/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

第一处是关于redo日志组的设置,10g中默认配置一组日志中只有一个日志成员。在11g中是默认有2个 第二个不同之处是在10g中有一个配置MAXINSTANCES,在11g中缺没有,因为是单实例数据库,是在找不出理由是这个地方的不同引起的问题。 第三个问题就更加明显了,在10g中 只有一句default tablespace tbs_1 然后没有定义明细的信息,这个语句是不能运行的,还需要手工去补充,在11g中,语句已经补充完整了。只需要简单的根据自己的需求需要一下就可以了。 所以第二个第三个问题是很明显的,应该不是问题的原因,那么我们看看第一处不同,还有什么地方有可能会导出语句出问题。 11g中这样定义的

代码语言:javascript
复制
LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') SIZE 100M BLOCKSIZE 512,

10g中是这样定义的 LOGFILE GROUP 1 ('/u01/oracle/oradata/mynewdb/redo01.log') SIZE 100M, 除了日志成员的不同外,还有一个地方就是blocksize的不同了,在10g中没有blocksize的字样。 带着试试看的态度把blocksize去掉,然后再次运行语句,语句就运行成功了。 问题解决了,我们来看看blocksize是什么东东。 这个值是在数据库的源代码中固定的,与操作系统相关,默认的值为512. 在不同的os中可能会有所不同。 查看blocksize的配置,可以使用基表。 这个Log size可以从Oracle的内部视图中获得:

SQL> select max(lebsz) from x$kccle; MAX(LEBSZ) ---------- 512

所以可见在10g,11g的很多细节之处还是会存在一定的差距,11g中也在不断的进行改进。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档