unix下手动创建与删除 oracle10g 实例

建库步骤如下:

========以下步骤在root账户下执行==========================

1、 操作系统相关的准备

  • 创建组和用户

groupadd  dba

groupadd  oinstall

useradd –m –g oinstall –G dba oracle

  • 检查安装目录剩余空间大小

  du –sh  /opt(linux)   bdf(hp)    df  -g(ibm)

  • 设置oracle账户的环境变量

vi  ~oracle/.profile

1 export ORACLE_BASE=/opt/oracle

2 export ORACLE_HOME=$ORACLE_BASE/product/10.2

3  export ORACLE_SID=cl //sid和库名最好不超过8位

4  export PATH=$PATH:$ORACLE_HOME/bin

使修改立即生效.  ~oracle/.profile (source  ~oracle/.profile)

  • 建立需要的目录

 rm  –rf  $ORACLE_BASE/admin/$ORACLE_SID

1 mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/adump // audit_file_dest审计跟踪日志文件的存放目录

2 mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/bdump // background_dump_dest 后台进程跟踪日志,包括告警日志

3 mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/cdump // core_dump_dest

4 mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/udump // user_dump_dest 用户进程跟踪日志

5 //mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/create

6 //mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/pfile // 参数文件存放路径

7 //mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/scripts

8 mkdir  -p  $ORACLE_BASE/arch/$ORACLE_SID // log_archive_dest_1归档路径

9 mkdir  -p  $ORACLE_BASE/oradata/$ORACLE_SID    // 数据文件(undo、temp、sysaux、system)、重做日志(redo)、控制文件(ctl)存放路径
10 chown -R  oracle:oinstall $ORACLE_BASE //修改目录的所有者

11  chmod  -R  775  $ORACLE_BASE               //修改ORACLE_BASE及其子目录的权限

2、 oracle软件以及脚本的准备

  • oracle软件准备:从其他服务器上rcp oracle的压缩包到目标机,并进行解压

  rcp  远程ip地址:文件路径  本地文件路径

打包并且压缩:tar  -cvfz  /tmp/root.tar.gz  . 把当前目录文件打包并用gzip压缩

               tar  -cvfj  /tmp/root.tar.bz2 .  把当前目录文件打包并用bzip2压缩

查看压缩包:  tar  -tvfz  /tmp/ root.tar.gz 

               tar  -tvfj  /tmp/root.tar.bz2

解压缩包:    tar  -xvfz  /tmp/root.tar.gz   -C  /tmp/ddd

               tar  -xvfj  /tmp/root.tar.bz2  -C  /tmp/ddd

  • 相关建库脚本准备:从其他服务器上rcp建库脚本到对应目录,并将其权限修改为oracle用户和oinstall组。(若脚本模版建库需要此步骤)

=========以下步骤在oracle用户下执行=========================

3、 若oracle从其他服务器拷贝过来,需要重新link文件

  • relink  all

4、 创建密码文件

  • orapwd  file=orapw$ORACLE_SID  password=xxxxx

//$ORACLE_HOME/bin/orapwd   file=$ORACLE_HOME/dbs/orapw$ORACLE_SID   password=xxxx

 

========利用脚本模版建库执行以下步骤=========

5、利用建库脚本模版,执行建库

  • 修改建库脚本模版(包括路径名、库名、实例名等)

可批量修改替换文件中指定的字符

1 ls | while read $aa

2 do

3 sed  s/替换前的内容/替换后的内容/g $aa > $$aa.temp

4 mv  $aa.temp  $aa

5 done

  • 执行建库脚本

1 $ORACLE_HOME/bin/sqlplus /nolog @/opt/chenliang/CreateDB.sql

2 $ORACLE_HOME/bin/sqlplus /nolog @/opt/chenliang/CreateDBCatalog.sql

3 $ORACLE_HOME/bin/sqlplus /nolog @/opt/chenliang/postDBCreation.sql

 

========手动建库则在步4之后执行如下操作===========

5、建立初始化参数文件

vi  $ORACLE_HOME/dbs/init$ORACLE_SID.ora

*.audit_file_dest='$ORACLE_BASE/admin/$ORACLE_SID/adump'

*.background_dump_dest='$ORACLE_BASE/admin/$ORACLE_SID/bdump'

*.core_dump_dest='$ORACLE_BASE/admin/$ORACLE_SID/cdump'

*.user_dump_dest='$ORACLE_BASE/admin/$ORACLE_SID/udump'

*.control_files=('$ORACLE_BASE/oradata/$ORACLE_SID/control01.ctl','$ORACLE_BASE/oradata/$ORACLE_SID/control02.ctl','$ORACLE_BASE/oradata/$ORACLE_SID/control03.ctl')

*.db_name='chenl'

*.db_unique_name=‘chenl’

*.db_block_size=8192

*.open_cursors=300

*.processes=300

*.sga_max_size=900M

*.sga_target=900M

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

//*.job_queue_processes=10

//*.log_archive_dest_1='location=$ORACLE_BASE/arch/$ORACLE_SID'

//*.compatible='10.2.0.4.0'

//*.log_archive_format='%t_%s_%r.arc'

//*.log_buffer=24538752

//*.sort_area_size=655360

//*.star_transformation_enabled='TRUE'

//*.streams_pool_size=32M

//*.backup_tape_io_slaves=TRUE

//*.pga_aggregate_target=3221225472

//*.db_file_multiblock_read_count=32

//*.disk_asynch_io=true

6、建立spfile后启动实例并开始建库

  • 建立spfile

sqlplus "/as sysdba"

//startup nomount pfile='$ORACLE_HOME/dbs/init$ORACLE_SID.ora';

 create spfile from pfile;(会自动读取$ORACLE_HOME/dbs/init$ORACLE_SID.ora)

         startup  nomount //使用spfile将数据库启动到nomount

  • 执行create  database

CREATE DATABASE  chenl   CONTROLFILE REUSE

MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXIN·STANCES 2
CHARACTER SET UTF8
NATIONAL CHARACTER SET AL16UTF16
USER SYS IDENTIFIED BY xxxxx
USER SYSTEM IDENTIFIED BY xxxxx
LOGFILE GROUP 1 (‘/opt/oracle/oradata/chenl/redo01.log’) SIZE 100M REUSE,
GROUP 2 (‘/opt/oracle/oradata/chenl/redo02.log’) SIZE 100M REUSE,
GROUP 3 (‘/opt/oracle/oradata/chenl/redo03.log’) SIZE 100M REUSE
DATAFILE ‘/opt/oracle/oradata/chenl/system01.dbf’ SIZE 325M REUSE autoextend on next 100M maxsize unlimited EXTENT MANAGEMENT LOCAL

sysaux datafile '/opt/oracle/oradata/chenl/sysaux.dbf' size 1024M autoextend on next 100M maxsize unlimited
DEFAULT TEMPORARY TABLESPACE temp

TEMPFILE ‘/opt/oracle/oradata/chenl/temp01.dbf’ SIZE 20M REUSE
UNDO TABLESPACE undotbs1 DATAFILE ‘/opt/oracle/oradata/chenl/undotbs01.dbf’
SIZE  200M  REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

  • 新建USERS表空间

SQL> CREATE TABLESPACE USERS LOGGING DATAFILE '/opt/oracle/oradata/chenl/users01.dbf' SIZE 1024M REUSE AUTOEXTEND ON NEXT 100m MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
SQL> ALTER DATABASE DEFAULT TABLESPACE USERS;

  • 修改为归档模式并重启
    SQL> shutdown immediate;
    SQL> connect /as sysdba
    SQL> startup mount
    SQL> alter database archivelog;
    SQL> alter database open;
    //SQL> execute utl_recomp.recomp_serial();  //重新编译所有失效过程:
  • 运行相关的数据字典脚本,其中catalog和catproc是必需的,其它可选:

SQL> spool /oradata/cat_chenl.log

SQL> @?/sqlplus/admin/pupbld.sql (sqlplus属性)
SQL> @?/sqlplus/admin/help/hlpbld.sql helpus.sql(sqlplus帮助)
SQL> @?/rdbms/admin/catalog.sql       (建数据字典视图)
SQL> @?/rdbms/admin/catproc.sql       (建存储过程包)
SQL> @?/rdbms/admin/catblock.sql   (建锁相关的几个视图)
SQL> @?/rdbms/admin/catoctk.sql       (建密码工具包dbms_crypto_toolkit)
SQL> @?/rdbms/admin/owminst.plb       (建工作空间管理相关对象,如dmbs_wm)
SQL> spool off
执行完后检查/orahome/cat.log看看有什么不可接受的错误没有。

  • 配置服务器端监听listener.ora

vi  $ORACLE_HOME/network/admin/listener.ora

SID_LIST_CHENL=

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = chenl)

      (ORACLE_HOME = /opt/oracle/product/10.2.0)

    )

  )

--------以下内容为非默认静态注册(缺省端口为1521,协议为tcp,如果不使用缺省值则加入下面内容)

CHENL=

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS_LIST =

//      (ADDRESS = (PROTOCOL = TCP)(HOST = archidba-vip)(PORT = 1521)(IP = FIRST))

        (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.25)(PORT = 1521))

      )

    )

      )

  • 配置客户端tnsnames.ora

chenl=

  (DESCRIPTION =

     (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.25)(PORT = 1521))

     )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = chenl)

    )

      )

  • 启动监听

lsnrctl start (在oracle账户下执行)

tnsping  chenl

sqlplus  sys/cl851019@chenl as sysdba

  • 调整undo为自动管理,设置undo数据过期时间为90分钟

SQL>alter system set undo_retention=5400;

  • 调整process为500

SQL>alter  system  set  processes=500 scope=spfile;

  • 建立和配置EM(可选):
    SQL> @?/sysman/admin/emdrep/sql/emreposcre /oracle/product/10.2 SYSMAN oracle TEMP ON;
    SQL> alter user SYSMAN identified by "sysman" account unlock;
    SQL> alter user DBSNMP identified by "dbsnmp" account unlock;
    SQL> host emca -config dbcontrol db -silent -DB_UNIQUE_NAME ypyhtb -PORT 1521 -EM_HOME /oracle/product/10.2/bin -LISTENER LISTENER -SERVICE_NAME ypythb.LK -SYS_PWD "oracle" -SID ypythb -ORACLE_HOME /oracle/product/10.2 -DBSNMP_PWD "dbsnmp" -HOST "172.19.201.184" -LISTENER_OH /oracle/product/10.2 -LOG_FILE /oradata/ypythb/emConfig.log -SYSMAN_PWD "sysman"

 

 

==========手动删除数据库实例====================

    1.停止监听与OEM

        $ lsnrctl stop listener_name

        $ emctl stop dbconsole

       

    2.获得数据文件,日志文件及控制文件的相关信息,包含归档       

        $ sqlplus / as sysdba

        SQL> select status,name from v$controlfile;   --取控制文件的位置信息

        SQL> select * from v$dbfile;                  --据文件的位置信息

        SQL> select * from v$logfile;                 --取日志文件的位置信息

        SQL> archive log list;                     --归档的sequence及位置信息

        SQL> shutdown abort;                   --据不再需要,直接shutdown abort

       

    3.启动到 mount 状态(使用exclusive restart)

        SQL> startup mount exclusive restrict;

       

    4.修改参数为允许受限的会话模式

        SQL> alter system enable restricted session;

       

    5.使用drop database命令来清除数据库

        SQL> drop database;

        SQL> exit

       

    6.手动清除相关文件

        $ echo $ORACLE_SID    --认当前的ORACLE_SID

        $ rm -rf $ORACLE_BASE/admin/$ORACLE_SID         --除oracle base目下的$ORACLE_SID的所有

        $ rm -rf $ORACLE_BASE/oradata/$ORACLE_SID       --oradata下的据文件,根据前面的查询,注意要除不同路下的据文件

        $ rm -rf $ORACLE_BASE/arch/$ORACLE_SID          --归档日志,注意归档的正确性

        $ rm -rf $ORACLE_BASE/flash_recovery_area/$ORACLE_SID   --

        $ rm -rf $ORACLE_HOME/dbs/*$ORACLE_SID*          --参数和密码文件    

       

    7.清除监听相关文件(建议)

        $ rm $TNS_ADMIN/*.ora    --如果定了$TNS_ADMIN量,否则删除默下的听文件   */

        $ rm $ORACLE_HOME/network/admin/*.ora            */

       

    8.修改oratab文件以及.profile

        $ vi /etc/oratab        --去掉例相

        $ vi ~orcle/.profile    --去掉例相

 

posted on 2012-09-12 20:39  ourstory is on the road  阅读(391)  评论(3编辑  收藏  举报