Welcome 微信登录

首页 / 数据库 / MySQL / Linux下手动创建Oracle数据库过程

今天发现一个Oracle测试库的字符集设置不正确,原本的字符集是UTF-8,正确的字符集应该是ZHS16GBK,因为UTF-8是ZHS16GBK的超集,无法修改,只能重建数据库,幸好该测试库上还没有数据。参考阅读:手动创建Oracle数据库实例 http://www.linuxidc.com/Linux/2013-07/87160.htm手工创建Oracle数据库 http://www.linuxidc.com/Linux/2013-05/84927.htmLinux环境下手工创建Oracle 10g数据库 http://www.linuxidc.com/Linux/2008-04/12317.htm虽然用DBCA也可以创建数据库,但我个人更喜欢手工创建数据库,其主要步骤如下(数据库版本11.2):1. 设置ORACLE_SID默认的ORACLE_SID是orcl,我个人强烈建议起个唯一、且意义的名字,比如**testdb,**proddb等等,在Oracle用户下执行:export ORACLE_SID=lxdbtest2. 重建PFILE 在$ORACLE_HOME/dbs目录下重建pfile(initORACLE_SID.ora,本例为initlxdbtest.ora),除了以下三个参数,其它参数都可以不用设置(使用默认值):db_name=lxdbtest
control_files="/home/oracle/app/oradata/lxdbtest/control01.ctl","/home/oracle/app/oradata/lxdbtest/control02.ctl","/home/oracle/app/oradata/lxdbtest/control03.ctl"
memory_target=2G为了安全起见,控制文件一定要指定多份,在生产库上,要把它们分开放在不同的物理磁盘上,这里因为是测试库,所以才放在同一个磁盘上。 3. 启动实例至nomount状态有了pfile就可以启动实例至nomount状态了:$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 25 21:01:16 2013Copyright (c) 1982, 2009, Oracle.  All rights reserved.Connected to an idle instance.SQL> startup nomount
ORACLE instance started.Total System Global Area 2137886720 bytes
Fixed Size                  2215064 bytes
Variable Size            1224737640 bytes
Database Buffers          905969664 bytes
Redo Buffers                4964352 bytes
SQL>4. 执行CREATE DATABASE语句CREATE DATABASE lxdbtest
 LOGFILE GROUP 1 ("/home/oracle/app/oradata/lxdbtest/redo01a.log","/data/oradata/lxdbtest/redo01b.log") SIZE 100M BLOCKSIZE 512,
         GROUP 2 ("/home/oracle/app/oradata/lxdbtest/redo02a.log","/data/oradata/lxdbtest/redo02b.log") SIZE 100M BLOCKSIZE 512,
         GROUP 3 ("/home/oracle/app/oradata/lxdbtest/redo03a.log","/data/oradata/lxdbtest/redo03b.log") SIZE 100M BLOCKSIZE 512
 MAXLOGFILES 5
 MAXLOGMEMBERS 5
 MAXLOGHISTORY 1
 MAXDATAFILES 600
 CHARACTER SET ZHS16GBK
 NATIONAL CHARACTER SET AL16UTF16
 EXTENT MANAGEMENT LOCAL
 DATAFILE "/home/oracle/app/oradata/lxdbtest/system01.dbf" SIZE 2048M REUSE AUTOEXTEND OFF
 SYSAUX DATAFILE "/home/oracle/app/oradata/lxdbtest/sysaux01.dbf" SIZE 2048M REUSE AUTOEXTEND OFF
 DEFAULT TABLESPACE users
      DATAFILE "/home/oracle/app/oradata/lxdbtest/users01.dbf"
      SIZE 2048M REUSE AUTOEXTEND OFF
 DEFAULT TEMPORARY TABLESPACE temptbs
      TEMPFILE "/home/oracle/app/oradata/lxdbtest/temp01.dbf"
      SIZE 2048M REUSE AUTOEXTEND OFF
 UNDO TABLESPACE undotbs
      DATAFILE "/home/oracle/app/oradata/lxdbtest/undotbs01.dbf"
      SIZE 2048M REUSE AUTOEXTEND OFF;有几点需要注意: 1)每个日志文件组的日志要放在不同的物理磁盘上,万一有一个磁盘损坏,也不会丢失数据2)根据需要选择合适的字符集3)创建了5个基本的表空间:SYSTEM,SYSAUX,默认表空间,默认临时表空间,默认UNDO表空间 5. 根据需要创建应用程序所需的表空间对于关键业务的数据,应该创建单独的表空间给它使用(最好把表和索引分开放在表空间)SQL> create tablespace p95169tbs
  2  datafile "/home/oracle/app/oradata/lxdbtest/p95169tbs01.dbf" size 10G,
  3  "/home/oracle/app/oradata/lxdbtest/p95169tbs02.dbf" size 10G;Tablespace created.6. 构建数据字典视图@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql7. 修改system,sys的密码alter user sys identified by ***;
alter user system identified by ***;8. 创建SPFILESQL> create spfile from pfile;File created.重启数据库后,将以spfile取代pfile. 最后,再顺便说下如何删除数据库。在删除数据库之前,数据库必须是在mount和restricted session状态,具体如下:SQL> startup mountSQL> alter system enable restricted session;System altered.SQL> drop database;Database dropped.数据库删除成功后,所有的在线日志文件、数据文件都会一并被删除,但归档日志和备份文件不会被删除。更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle和SQL Server在SQL语句上的差别整理rlwrap - 解决Linux下sqlplus退格、上翻键乱码问题相关资讯      Oracle创建数据库 
  • Oracle创建数据库和用户  (07/23/2015 11:15:57)
  • 通过命令创建Oracle 11g数据库  (10/15/2014 11:20:09)
  • Oracle 10g创建数据库并配置远程访  (08/13/2013 10:14:08)
  • 手工创建Oracle数据库详解  (05/19/2015 08:41:49)
  • Oracle手工创建数据库的完整步骤  (05/06/2014 05:49:50)
  • 手工创建Oracle数据库  (05/26/2013 14:15:20)
本文评论 查看全部评论 (0)
表情: 姓名: 字数