您好,欢迎访问一九零五行业门户网

静默方式安装10g数据库软件+升级patch+手工建库

通常我们安装oracle数据库软件,都是用oui图形界面来完成的,但有些unix/linux系统中并未安装图形系统,也就无法使用图形界面来安装oracle的产品了,对于这种场景,就只能采用静默方式来安装了,oracle提供了这种silent方式,主要是通过配置响应文件rsp来完
通常我们安装oracle数据库软件,都是用oui图形界面来完成的,但有些unix/linux系统中并未安装图形系统,也就无法使用图形界面来安装oracle的产品了,对于这种场景,就只能采用静默方式来安装了,oracle提供了这种silent方式,主要是通过配置响应文件rsp来完成的。
一、静默安装10.2.0.1数据库软件
--解压安装包[oracle@prod u01]$ unzip 10201_database_linux32.zip[oracle@prod u01]$ cd database/[oracle@prod database]$ lltotal 28drwxr-xr-x 9 oracle oinstall 4096 jul 3 2005 docdrwxr-xr-x 5 oracle oinstall 4096 jul 3 2005 installdrwxr-xr-x 2 oracle oinstall 4096 jul 3 2005 response-rwxr-xr-x 1 oracle oinstall 1327 jul 3 2005 runinstallerdrwxr-xr-x 9 oracle oinstall 4096 jul 3 2005 stage-rwxr-xr-x 1 oracle oinstall 5213 jul 3 2005 welcome.html[oracle@prod database]$ cd response/[oracle@prod response]$ lltotal 244-rwxr-xr-x 1 oracle oinstall 25278 jul 3 2005 custom.rsp-rwxr-xr-x 1 oracle oinstall 44600 jul 3 2005 dbca.rsp-rwxr-xr-x 1 oracle oinstall 8476 jul 3 2005 emca.rsp-rwxr-xr-x 1 oracle oinstall 71113 jul 3 2005 enterprise.rsp-rwxr-xr-x 1 oracle oinstall 5742 jul 3 2005 netca.rsp-rwxr-xr-x 1 oracle oinstall 71113 jul 3 2005 standard.rsp[oracle@prod response]$ vi enterprise.rsp--修改相应文件enterprise.rsp内容把以下几项参数的或替换成对应的值:unix_group_name=oinstalloracle_home=/u01/app/oracle/product/10.2.0/db_1oracle_home_name=oradb10g_home1oracle_hostname=prods_namefordbagrp=dban_configurationoption=3# 1 - create a database# 2 - configure an asm instance# 3 - install software only --仅安装软件s_asmsyspassword=oracles_asmsyspasswordagain=oraclen_dbtype=1 --dbca时才需要,可以不配置# 1 - general purpose starter database# 2 - transaction processing starter database# 3 - data warehouse starter database# 4 - advanced configurations_globaldbname=prods_dbsid=prods_dbretchar=we8iso8859p1 -> s_dbretchar=zhs16gbkb_loadexampleschemas=false -> b_loadexampleschemas=truen_dbstoragetype=1 --dbca才需要,可以不配置# 1 - place the data files on a file system --采用本地文件系统路径# 2 - use automatic storage management (asm)# 3 - place the datafiles on raw partitions--开始执行静默安装oracle软件[oracle@prod database]$ ./runinstaller -ignoresysprereqs -silent -responsefile /u01/database/response/enterprise.rspstarting oracle universal installer...checking installer requirements...checking operating system version: must be redhat-3, suse-9, redhat-4, unitedlinux-1.0, asianux-1 or asianux-2passedall installer requirements met.preparing to launch oracle universal installer from /tmp/orainstall2014-08-29_02-39-21pm. please wait ...[oracle@prod database]$ oracle universal installer, version 10.2.0.1.0 productioncopyright (c) 1999, 2005, oracle. all rights reserved.you can find a log of this install session at:/u01/app/oracle/orainventory/logs/installactions2014-08-29_02-39-21pm.log.................................................................................................... 100% done.loading product information................................................................................................................... 100% done.analyzing dependencies.........................................................................starting execution of prerequisites...total no of checks: 11performing check for certifiedversionschecking operating system requirements ...expected result: one of redhat-3,redhat-4,suse-9,asianux-1,asianux-2actual result: redhat-3check complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for packageschecking operating system package requirements ...checking for make-3.79; found make-1:3.81-3.el5. passedchecking for binutils-2.14; found binutils-2.17.50.0.6-9.el5. passedchecking for gcc-3.2; found gcc-4.1.2-44.el5. passedchecking for libaio-0.3.96; found libaio-0.3.106-3.2. passedcheck complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for kernelchecking kernel parameterschecking for semmsl=250; found semmsl=250. passedchecking for semmns=32000; found semmns=32000. passedchecking for semopm=100; found semopm=100. passedchecking for semmni=128; found semmni=128. passedchecking for shmmax=536870912; found shmmax=2147483648. passedchecking for shmmni=4096; found shmmni=4096. passedchecking for shmall=2097152; found shmall=2097152. passedchecking for file-max=65536; found file-max=65536. passedchecking for version=2.4.21; found version=2.6.18-128.el5. passedchecking for ip_local_port_range=1024 - 65000; found ip_local_port_range=1024 - 65000. passedchecking for rmem_default=262144; found rmem_default=262144. passedchecking for rmem_max=262144; found rmem_max=262144. passedchecking for wmem_default=262144; found wmem_default=262144. passedchecking for wmem_max=262144; found wmem_max=262144. passedcheck complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for glibcchecking recommended glibc versionexpected result: atleast=2.3.2-95.27actual result: 2.5-34check complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for totalmemorychecking physical memory requirements ...expected result: 922mbactual result: 1008mbcheck complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for swapspacechecking available swap space requirements ...expected result: 1512mbactual result: 2047mbcheck complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for detectifdhcpassignedipchecking network configuration requirements ...check complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for oraclebasevalidating oracle_base location (if set) ...check complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for oraclehomespacechecking oracle home path for spaces...check complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for detectanyinvalidasmhomechecking for proper system clean-up....check complete. the overall result of this check is: passedcheck complete: passed=======================================================================performing check for compatibilitycheckschecking for oracle home incompatibilities ....actual result: new_homecheck complete. the overall result of this check is: passedcheck complete: passed=======================================================================prereqchecks complete.......................................... 100% done.----------------------------------------------------------------------------summaryglobal settingssource: /u01/database/stage/products.xmloracle home: /u01/app/oracle/product/10.2.0/db_1 (oradb10g_home1)installation type: enterprise editionproduct languagesenglishspace requirements/ required 1.36gb (includes 108mb temporary) : available 1.46gbnew installations (107 products)oracle database 10g 10.2.0.1.0enterprise edition options 10.2.0.1.0oracle partitioning 10.2.0.1.0oracle spatial 10.2.0.1.0oracle olap 10.2.0.1.0oracle enterprise manager console db 10.2.0.1.0oracle net services 10.2.0.1.0oracle database 10g 10.2.0.1.0oracle net listener 10.2.0.1.0has files for db 10.2.0.1.0oracle internet directory client 10.2.0.1.0oracle call interface (oci) 10.2.0.1.0oracle programmer 10.2.0.1.0oracle intermedia 10.2.0.1.0enterprise manager agent core 10.2.0.1.0oracle jvm 10.2.0.1.0database configuration and upgrade assistants 10.2.0.1.0oracle intermedia locator 10.2.0.1.0oracle xml development kit 10.2.0.1.0oracle text 10.2.0.1.0oracle database utilities 10.2.0.1.0generic connectivity common files 10.2.0.1.0oracle advanced security 10.2.0.1.0enterprise manager repository core 10.2.0.1.0pl/sql 10.2.0.1.0oracle net 10.2.0.1.0assistant common files 10.2.0.1.0enterprise manager plugin common files 10.2.0.1.0 betabuildtools common files 10.2.0.1.0installation common files 10.2.0.1.0oracle ldap administration 10.2.0.1.0oracle java client 10.2.0.1.0precompiler common files 10.2.0.1.0oracle recovery manager 10.2.0.1.0sql*plus 10.2.0.1.0isql*plus 10.2.0.1.0enterprise manager plugin common files 10.2.0.1.0has common files 10.2.0.1.0oracle clusterware rdbms files 10.2.0.1.0oracle wallet manager 10.2.0.1.0enterprise manager minimal integration 10.2.0.1.0oracle database user interface 2.2.13.0.0secure socket layer 10.2.0.1.0oracle odbc driver 10.2.0.1.0required support files 10.2.0.1.0database sql scripts 10.2.0.1.0olap sql scripts 10.2.0.1.0pl/sql embedded gateway 10.2.0.1.0oracle globalization support 10.2.0.1.0character set migration utility 10.2.0.1.0ldap required support files 10.2.0.1.0oracle help for the web 1.1.10.0.0oracle jdbc thin driver for jdk 1.4 10.2.0.1.0oracle jdbc thin driver for jdk 1.2 10.2.0.1.0oracle intermedia client option 10.2.0.1.0oracle notification service 10.1.0.3.0oracle code editor 1.2.1.0.0iperl interpreter 5.8.3.0.2jdbc common files 10.2.0.1.0oracle locale builder 10.2.0.1.0oracle containers for java 10.2.0.1.0database workspace manager 10.2.0.1.0oracle core required support files 10.2.0.1.0platform required support files 10.2.0.1.0oracle intermedia locator rdbms files 10.2.0.1.0oracle jdbc/oci instant client 10.2.0.1.0oracle intermedia annotator 10.2.0.1.0sqlj runtime 10.2.0.1.0oracle intermedia java advanced imaging 10.2.0.1.0oracle database 10g intermedia files 10.2.0.1.0oracle data mining rdbms files 10.2.0.1.0enterprise manager baseline 10.2.0.1.0oracle help for java 4.2.6.1.0oracle uix 2.1.22.0.0xml parser for java 10.2.0.1.0precompiler required support files 10.2.0.1.0xml parser for oracle jvm 10.2.0.1.0oracle message gateway common files 10.2.0.1.0oracle starter database 10.2.0.1.0sample schema data 10.2.0.1.0parser generator required support files 10.2.0.1.0agent required support files 10.2.0.1.0oracle rac required support files-has 10.2.0.1.0rdbms required support files 10.2.0.1.0rdbms required support files for instant client 10.2.0.1.0xdk required support files 10.2.0.1.0oracle olap api 10.2.0.1.0oracle olap rdbms files 10.2.0.1.0dbjava required support files 10.2.0.1.0sql*plus required support files 10.2.0.1.0oracle jfc extended windowing toolkit 4.2.33.0.0oracle ice browser 5.2.3.6.0oracle display fonts 9.0.2.0.0oracle extended windowing toolkit 3.4.38.0.0enterprise manager common files 10.2.0.1.0enterprise manager agent db 10.2.0.1.0oracle net required support files 10.2.0.1.0enterprise manager repository db 10.2.0.1.0ssl required support files for instantclient 10.2.0.1.0regexp 2.1.9.0.0bali share 1.1.18.0.0oracle universal installer 10.2.0.1.0oracle one-off patch installer 10.2.0.1.0installer sdk component 10.2.0.1.0java runtime environment 1.4.2.8.0sun jdk 1.4.2.0.8sun jdk extensions 10.1.2.0.0-----------------------------------------------------------------------------installation in progress (fri aug 29 14:40:10 cst 2014)............................................................... 18% done................................................................ 36% done................................................................ 54% done................................................................ 73% done............. 76% done.install successfullinking in progress (fri aug 29 14:46:38 cst 2014) --注意,这里需要link一段时间,耐心等待直到完成link successfulsetup in progress (fri aug 29 14:52:26 cst 2014).............. 100% done.setup successfulend of install phases.(fri aug 29 14:52:36 cst 2014)warning:a new inventory has been created in this session. however, it has not yet been registered as the central inventory of this system.to register the new inventory please run the script '/u01/app/oracle/orainventory/orainstroot.sh' with root privileges.if you do not register the inventory, you may not be able to update or patch the products you installed.the following configuration scripts/u01/app/oracle/product/10.2.0/db_1/root.shneed to be executed as root for configuring the system. if you skip the execution of the configuration tools, the configuration will not be complete and the product wont function properly. in order to get the product to function properly, you will be required to execute the scripts and the configuration tools after exiting the oui.the installation of oracle database 10g was successful.please check '/u01/app/oracle/orainventory/logs/silentinstall2014-08-29_02-39-21pm.log' for more details.--另外开启一个session,分别执行orainstroot.sh和root.sh脚本[root@prod oracle]# /u01/app/orainventory/orainstroot.shchanging permissions of /u01/app/orainventory to 770.changing groupname of /u01/app/orainventory to oinstall.the execution of the script is complete[root@prod oracle]# /u01/app/oracle/product/10.2.0/db_1/root.sh略……
二、静默安装10.2.0.5.0 patch set release(psr)
--解压安装包[oracle@prod /u01]$ unzip p8202632_10205_linux.zip[oracle@prod /u01]$ cd /disk1/response[oracle@prod response]# lltotal 28-rwxr-xr-x 1 root root 27919 oct 20 2009 patchset.rsp--修改响应文件patchset.rsp[oracle@prod response]# vi patchset.rsp修改以下内容:unix_group_name=oinstalloracle_home=/u01/app/oracle/product/10.2.0/db_1oracle_home_name=oradb10g_home1
oui_hostname=prod --注意,刚才静默安装数据库软件时,对应的参数名为oralce_hostname,注意区别!
可以发现,psr的参数要比oaracle软件的参数少许多
如果忘记oracle_home_name的名字,可以查看$oracle_base/orainventory/contentsxml/inventory.xml文件的内容:
[oracle@prod ~]$ cd $oracle_base/orainventory/contentsxml[oracle@prod contentsxml]$ lltotal 12-rw-rw---- 1 oracle oinstall 264 aug 29 14:52 comps.xml-rw-rw---- 1 oracle oinstall 415 aug 29 14:52 inventory.xml-rw-rw---- 1 oracle oinstall 274 aug 29 14:52 libs.xml[oracle@prod contentsxml]$ cat inventory.xml10.2.0.1.02.1.0.6.0[oracle@prod contentsxml]$--开始静默安装patch[oracle@prod response]$ cd ..[oracle@prod disk1]$ ./runinstaller -silent -responsefile ./response/patchset.rsp...oui-10203:the specified response file './response/patchset.rsp' is not found. make sure that the response file specified exists and you have read privileges to this file.
这里必须指定绝对路径,否则会提示找不到rsp文件
[oracle@prod disk1]$ ./runinstaller -silent -responsefile /u01/disk1/response/patchset.rsp...severe:oui-10029:you have specified a non-empty directory to install this product. it is recommended to specify either an empty or a non-existent directory. you may, however, choose to ignore this message if the directory contains operating system generated files or subdirectories like lost+found.由于和之前oracle_home路径相同,会报oui-10029,加上-force参数可以忽略这个问题[oracle@prod disk1]$ ./runinstaller -silent -responsefile /u01/disk1/response/patchset.rsp -force
然后会提示没有设置mos账号,静默安装终止
severe:values for the following variables could not be obtained from the command line or response file(s):myoraclesupport_username(myoraclesupportusername)silent install cannot continue.--再次修改patchset.rspmyoraclesupport_username=abc@oracle.com --填写一个不存在的账号,欺骗安装程序decline_security_updates=ture[oracle@prod disk1]$ ./runinstaller -silent -responsefile /u01/disk1/response/patchset.rsp -forcesevere:unable to establish a network connection to oracle. if your systems require a proxy server for outbound internet connections, enter the proxy server details. if network connectivity to oracle is not possible, set 'decline_security_updates' to 'true'.
此时其实已经设置了decline_security_updates=ture,但不知为何安装程序识别不到,必须在命令行中带上这2个参数才行!
[oracle@prod disk1]$ ./runinstaller -silent -responsefile /zlm/disk1/response/patchset.rsp myoraclesupport_username=abc@oracle.com decline_security_updates=true -force
终于开始运行了,整个安装过程和装10.2.0.1软件时大同小异,略……
除了软件安装可以用配置rsp响应文件来静默安装,同样地,dbca,netca等也都可以通过配置各自的rsp响应文件来完成静默安装,这里就不演示了。
--执行root.sh脚本(如果之前已经执行过orainstroot.sh脚本,就无需再执行一次了,否则必须先执行一次)
[root@prod oracle]# /u01/app/oracle/product/10.2.0/db_1/root.shrunning oracle 10g root.sh script...the following environment variables are set as:oracle_owner= oracleoracle_home= /u01/app/oracle/product/10.2.0/db_1enter the full pathname of the local bin directory: [/usr/local/bin]:the file dbhome already exists in /usr/local/bin. overwrite it? (y/n)[n]: ycopying dbhome to /usr/local/bin ...the file oraenv already exists in /usr/local/bin. overwrite it? (y/n)[n]: ycopying oraenv to /usr/local/bin ...the file coraenv already exists in /usr/local/bin. overwrite it? (y/n)[n]: ycopying coraenv to /usr/local/bin ...entries will be added to the /etc/oratab file as needed bydatabase configuration assistant when a database is createdfinished running generic part of root.sh script.now product-specific root actions will be performed.
至此,软件安装完毕
三、手动建库
--修改环境变量:[oracle@prod ~]$ cd ~[oracle@prod ~]$ vi .bash_profileexport oracle_base=/u01/app/oracleexport oracle_sid=prodexport editor=vi[oracle@prod ~]$ source .bash_profile[oracle@prod ~]$ env|grep -i sidoracle_sid=prod--建立相关目录:[oracle@prod ~]$ cd $oracle_base[oracle@prod oracle]$ mkdir -p admin/prod/{a,b,c,u}dump[oracle@prod oracle]$ mkdir -p oradata/prod--修改/etc/oratab文件[oracle@prod oracle]$ cat >> /etc/oratab initprod.ora --去掉注释内容[oracle@prod dbs]$ vi initprod.ora修改为如下内容:db_name = proddb_files = 80db_file_multiblock_read_count = 8db_block_buffers = 100shared_pool_size = 150mdb_chache_size = 250mlog_checkpoint_interval = 10000processes = 150parallel_max_servers = 5log_buffer = 1024000max_dump_file_size = 10240000global_names = falsecontrol_files = (/u01/app/oracle/oradata/prod/control01.ctl,/u01/app/oracle/oradata/prod/control02.ctl,/u01/app/oracle/oradata/prod/control03.ctl)log_archive_dest_1 = location=/u01/archiveloglog_archive_dest_state_1 = enabledb_block_size = 8192undo_management = autoundo_tablespace = undotbscompatible = 10.2.0sga_target = 500msga_max_size = 500m--建立归档目录[oracle@prod ~]$ mkdir /u01/archivelog--创建密码文件orapwprod[oracle@prod dbs]$ orapwd file=orapwprod password=oracle entries=5--启动sqlplus[oracle@prod dbs]$ sqlplus / as sysdbasql*plus: release 10.2.0.1.0 - production on tue mar 6 16:08:29 2012copyright (c) 1982, 2005, oracle. all rights reserved.connected to an idle instance.--创建spfilesql> create spfile from pfile;file created.--启动到nomountsql> startup nomountora-00824: cannot set sga_target due to existing internal settings, see alert log for more informationsql> exitdisconnected[oracle@prod dbs]$ lltotal 44-rw-r----- 1 oracle oinstall 207 aug 29 21:23 alert_prod.log-rw-r--r-- 1 oracle oinstall 12920 may 3 2001 initdw.ora-rw-r----- 1 oracle oinstall 8385 sep 11 1998 init.ora-rw-r--r-- 1 oracle oinstall 776 aug 29 21:19 initprod.ora-rw-r----- 1 oracle oinstall 2048 aug 29 21:17 orapwprod-rw-r----- 1 oracle oinstall 2560 aug 29 21:20 spfileprod.ora[oracle@prod dbs]$ cat alert_prod.logthe value of parameter db_block_buffers is belowthe required minimumthe new value is ((4mb * the number of cpus)/db_block_size)fri aug 29 21:23:08 cst 2014cannot set sga_target with db_block_buffers set
原来是db_block_buffers = 100设置得太小了,根据公式应该=512000,但重启后依然无效。
查阅官方资料得知,sga_target > 0 不能与db_block_buffer这个过时的参数共存,否则就会出现ora-00824错误。那么现在把该参数去掉后重新创建spfile,并启动到nomount即可
sql> create spfile from pfile;file created.sql> startup nomountoracle instance started.total system global area 524288000 bytesfixed size 1274668 bytesvariable size 146803924 bytesdatabase buffers 373293056 bytesredo buffers 2916352 bytessql>--编辑创建数据库语句[oracle@prod scripts]$ touch createprod.sql[oracle@prod scripts]$ vi createprod.sqlcreate database produser sys identified by oracleuser system identified by oraclelogfile group 1 ('/u01/app/oracle/oradata/prod/redo01a.log','/u01/app/oracle/oradata/prod/redo01b.log') size 50m,group 2 ('/u01/app/oracle/oradata/prod/redo02a.log','/u01/app/oracle/oradata/prod/redo02b.log') size 50m,group 3 ('/u01/app/oracle/oradata/prod/redo03a.log','/u01/app/oracle/oradata/prod/redo03b.log') size 50mmaxlogfiles 200maxlogmembers 5maxloghistory 200maxdatafiles 100maxinstances 2character set al32utf8national character set al16utf16datafile '/u01/app/oracle/oradata/prod/system01.dbf' size 300m reuse'/u01/app/oracle/oradata/prod/user01.dbf' size 100m reuse'/u01/app/oracle/oradata/prod/example01.dbf' size 100m reuseextent management localsysaux datafile '/u01/app/oracle/oradata/prod/sysaux01.dbf' size 300m reusedefault temporary tablespace temptempfile '/u01/app/oracle/oradata/prod/temp01.dbf' size 100m reuseundo tablespace undotbsdatafile '/u01/app/oracle/oradata/prod/undotbs01.dbf' size 100m reuse autoextend on maxsize 2g;--执行语句创建脚本[oracle@prod ~]$ sqlplus / as sysdbasql*plus: release 10.2.0.5.0 - production on fri aug 29 21:56:55 2014copyright (c) 1982, 2010, oracle. all rights reserved.connected to:oracle database 10g enterprise edition release 10.2.0.5.0 - productionwith the partitioning, olap, data mining and real application testing optionssql> @createprod.sqlcreate database prod*error at line 1:ora-01092: oracle instance terminated. disconnection forced建库脚本遭遇错误,实例被终止了sql> exit[oracle@prod ~]$ sqlplus / as sysdbasql*plus: release 10.2.0.5.0 - production on fri aug 29 22:01:06 2014copyright (c) 1982, 2010, oracle. all rights reserved.connected to an idle instance.sql> startuporacle instance started.total system global area 524288000 bytesfixed size 1274668 bytesvariable size 146803924 bytesdatabase buffers 373293056 bytesredo buffers 2916352 bytesora-01079: oracle database was not properly created, operation abortedsql> !oerr ora 107901079, 00000, oracle database was not properly created, operation aborted// *cause: there was an error when the database or control file was created.// *action: check what error was signaled when the database was first// created or when the control file was recreated. take appropriate// actions to recreate the database or a new control file.sql>
提示需要重建数据库或控制文件,如果要重建控制文件,也没办法用备份控制文件到trace的方法来获得创建脚本,只能手动添加控制文件需要的内容,因为现在还是在nomount状态下
--查看$oracle_base/oradata/prod中新创建的数据文件
[root@prod prod]# lltotal 948624-rw-r----- 1 oracle oinstall 8863744 aug 29 21:58 control01.ctl-rw-r----- 1 oracle oinstall 8863744 aug 29 21:58 control02.ctl-rw-r----- 1 oracle oinstall 8863744 aug 29 21:58 control03.ctl-rw-r----- 1 oracle oinstall 104865792 aug 29 21:57 example01.dbf-rw-r----- 1 oracle oinstall 52429312 aug 29 21:58 redo01a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 21:58 redo01b.log-rw-r----- 1 oracle oinstall 52429312 aug 29 21:57 redo02a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 21:57 redo02b.log-rw-r----- 1 oracle oinstall 52429312 aug 29 21:57 redo03a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 21:57 redo03b.log-rw-r----- 1 oracle oinstall 314580992 aug 29 21:58 system01.dbf-rw-r----- 1 oracle oinstall 104865792 aug 29 21:58 undotbs01.dbf-rw-r----- 1 oracle oinstall 104865792 aug 29 21:57 user01.dbf
控制文件也已经生成了,为何还会报错呢,难道是脚本有问题?仔细观察后发现,sysaux01.dbf和temp01.dbf并未创建成功,因为实例遭遇故障,实例终止了
--删除控制文件后重建[root@prod prod]# rm -rf control*[root@prod prod]# lltotal 922608-rw-r----- 1 oracle oinstall 104865792 aug 29 22:27 example01.dbf-rw-r----- 1 oracle oinstall 52429312 aug 29 22:27 redo01a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 22:27 redo01b.log-rw-r----- 1 oracle oinstall 52429312 aug 29 22:26 redo02a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 22:26 redo02b.log-rw-r----- 1 oracle oinstall 52429312 aug 29 22:26 redo03a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 22:26 redo03b.log-rw-r----- 1 oracle oinstall 314580992 aug 29 22:26 system01.dbf-rw-r----- 1 oracle oinstall 104865792 aug 29 22:27 undotbs01.dbf-rw-r----- 1 oracle oinstall 104865792 aug 29 22:27 user01.dbf--根据控制文件模板创建一个符合自己数据库的控制文件startup nomountcreate controlfile reuse database prod noresetlogsmaxlogfiles 200maxlogmembers 5maxloghistory 200maxdatafiles 100maxinstances 2logfilegroup 1 ('/u01/app/oracle/oradata/prod/redo01a.log','/u01/app/oracle/oradata/prod/redo01b.log') size 50m,group 2 ('/u01/app/oracle/oradata/prod/redo02a.log','/u01/app/oracle/oradata/prod/redo02b.log') size 50m,group 3 ('/u01/app/oracle/oradata/prod/redo03a.log','/u01/app/oracle/oradata/prod/redo03b.log') size 50mdatafile'/u01/app/oracle/oradata/prod/system01.dbf','/u01/app/oracle/oradata/prod/example01.dbf','/u01/app/oracle/oradata/prod/user01.dbf','/u01/app/oracle/oradata/prod/undotbs01.dbf'character set al32utf8;重建控制文件后,open数据库时会报数据文件system01.dbf需要恢复,无法打开数据库,用resetlogs也不行--把之前创建的文件全部删除后,再次尝试执行脚本sql> @createprod.sqlcreate database prod*error at line 1:ora-01501: create database failedora-19502: write error on file /u01/app/oracle/oradata/prod/redo03a.log,blockno 172033 (blocksize=512)ora-27072: file i/o errorlinux error: 9: bad file descriptoradditional information: 4additional information: 172033additional information: 1003008sql> ![oracle@prod ~]$ df -hfilesystem size used avail use% mounted on/dev/mapper/volgroup00-logvol005.7g 5.0g 486m 92% //dev/sda1 99m 12m 82m 13% /boottmpfs 506m 0 506m 0% /dev/shm/dev/sdb1 7.9g 2.3g 5.3g 31% /zlm
刚才的问题,初步怀疑是空间分配得太小,无法创建全部的数据库文件所致,可用空间只剩486m了,/dev/sdb1是我另外挂载的一个8g磁盘,用来放安装文件,也是因为可用空间太小的缘故
--删除不必要的文件后,再次查看磁盘空间[oracle@prod ~]$ df -hfilesystem size used avail use% mounted on/dev/mapper/volgroup00-logvol005.7g 4.2g 1.3g 77% //dev/sda1 99m 12m 82m 13% /boottmpfs 506m 0 506m 0% /dev/shm/dev/sdb1 7.9g 2.3g 5.3g 31% /zlm
现在有1.3g可用空间,再重新创建一次数据库
[oracle@prod ~]$ sqlplus / as sysdbasql*plus: release 10.2.0.5.0 - production on fri aug 29 23:48:13 2014copyright (c) 1982, 2010, oracle. all rights reserved.connected to an idle instance.sql> startup nomountoracle instance started.total system global area 524288000 bytesfixed size 1274668 bytesvariable size 146803924 bytesdatabase buffers 373293056 bytesredo buffers 2916352 bytessql> @createprod.sqldatabase created.sql>--再次查看创建的文件[oracle@prod prod]$ lltotal 1256212-rw-r----- 1 oracle oinstall 8863744 aug 29 23:52 control01.ctl-rw-r----- 1 oracle oinstall 8863744 aug 29 23:52 control02.ctl-rw-r----- 1 oracle oinstall 8863744 aug 29 23:52 control03.ctl-rw-r----- 1 oracle oinstall 104865792 aug 29 23:49 example01.dbf-rw-r----- 1 oracle oinstall 52429312 aug 29 23:50 redo01a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 23:50 redo01b.log-rw-r----- 1 oracle oinstall 52429312 aug 29 23:48 redo02a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 23:48 redo02b.log-rw-r----- 1 oracle oinstall 52429312 aug 29 23:48 redo03a.log-rw-r----- 1 oracle oinstall 52429312 aug 29 23:48 redo03b.log-rw-r----- 1 oracle oinstall 314580992 aug 29 23:49 sysaux01.dbf-rw-r----- 1 oracle oinstall 314580992 aug 29 23:49 system01.dbf-rw-r----- 1 oracle oinstall 104865792 aug 29 23:49 temp01.dbf-rw-r----- 1 oracle oinstall 104865792 aug 29 23:49 undotbs01.dbf-rw-r----- 1 oracle oinstall 104865792 aug 29 23:49 user01.dbf
这次,在创建数据库脚本中指定的数据文件,都正确地被创建成功了,包括之前没有的sysaux01.dbf和temp01.dbf
--再来看看现在还剩多少剩余空间[oracle@prod prod]$ df -hfilesystem size used avail use% mounted on/dev/mapper/volgroup00-logvol005.7g 5.4g 77m 99% //dev/sda1 99m 12m 82m 13% /boottmpfs 506m 0 506m 0% /dev/shm/dev/sdb1 7.9g 2.3g 5.3g 31% /zlm
从1.3g到77m,一个数据库实例用掉了将近1g的磁盘空间,第一次建库失败,就是因为在/u01下放了一个大于77m的文件,因为没有剩余空间造成建库失败!
至此,完成了手工建库的全部过程
总结:
通过silent方式安装数据库软件,升级patch,然后手工建库,都是在没有图形界面支持下完成的,其中装软件要注意安装前参数的配置,尤其是升级patch的时候,必须在命令后面加上2个参数,并且使用-force才能完成安装;手工建库的难点是配置init.ora初始化参数和创建数据库的脚本编写,如平时注意收集整理,准备好相应的脚本,那么实际操作起来就能得心应手了,可以很快的完成批量建库的任务,众所周知,oui的dbca,经常会卡在86%很久,而用silent命令行方式,可以大大加快这一步骤,前提是你能熟悉运用命令和参数设置。
其它类似信息

推荐信息