ITPub博客

首页 > 数据库 > Oracle > linux 手动创建oracle数据库手册--转载

linux 手动创建oracle数据库手册--转载

Oracle 作者:wj19871117 时间:2013-07-16 12:11:26 0 删除 编辑

linux 手动创建oracle数据库手册

张映 发表于 2011-06-01

分类目录: oracle

linux下创建oracle数据库主要有二种方法以:1,通过dbca来创建;2,手动创建。

用dbca创建比较简单,图形化操作。注意:要加环境变量export LC_ALL=C,不然会乱码的。

手动创建比较麻烦,不过我们可以大致了解oracle就怎么存储数据的,目录是怎么安排的等。下面如何手动创建数据库详细的说明一下。

1,设置环境变量

装oracle的时候,设置了一些环境变量,下面这些环境变量是根这次安装有关的

  1. ORACLE_HOME=/opt/ora10   
  2. ORACLE_OWNER=oracle   
  3. DB_HOME=/opt/ora10/oradata   
  4. ORACLE_SID=ora1             //这个是默认安装ora1数据库的sid,下面会改掉的。  
ORACLE_HOME=/opt/ora10
ORACLE_OWNER=oracle
DB_HOME=/opt/ora10/oradata
ORACLE_SID=ora1             //这个是默认安装ora1数据库的sid,下面会改掉的。

手动创建oracle数据库的时候,最好是切换oracle用户,就是安装oracle的那个用户。su oracle

2,创建pfile文件

oracle安装完成后,系统默认有一个数据库ora1,我们可以利用它来创建pfile文件

  1. cd $ORACLE_HOME/dbs   
  2. strings spfileora1.ora >initmytest.ora  
cd $ORACLE_HOME/dbs
strings spfileora1.ora >initmytest.ora

然后在手动将initmytest.ora里面ora1,全部改成mytest,这样pfile文件就做好了。

3,生成密码文件

  1. sudo cp $ORACLE_HOME/bin/orapwd /usr/local/bin/   
  2. orapwd file=orapwmytest password=mytest      //目录是$ORACLE_HOME/dbs,前面已经有了  
sudo cp $ORACLE_HOME/bin/orapwd /usr/local/bin/
orapwd file=orapwmytest password=mytest      //目录是$ORACLE_HOME/dbs,前面已经有了

4,创建oracle数据库目录

  1. mkdir $ORACLE_HOME/admin/mytest   
  2. cd $ORACLE_HOME/admin/mytest   
  3. mkdir adump bdump cdump dpdump pfile udump   
  4. mkdir $DB_HOME/mytest                      //这一步不要忘了,容易看错  
mkdir $ORACLE_HOME/admin/mytest
cd $ORACLE_HOME/admin/mytest
mkdir adump bdump cdump dpdump pfile udump
mkdir $DB_HOME/mytest                      //这一步不要忘了,容易看错

5,修改tnsnames.ora和listener.ora

  1. //这个在tnsnames.ora中加上   
  2. MYTEST =   
  3.  (DESCRIPTION =   
  4.     (ADDRESS (PROTOCOL TCP)(HOST ubuntu)(PORT 1521))   
  5.     (CONNECT_DATA =   
  6.        (SERVER DEDICATED)   
  7.        (SERVICE_NAME mytest)   
  8.     )   
  9.  )   
  10.   
  11. //这个在lister.ora中加上   
  12. (SID_DESC =   
  13.  (SID_NAME mytest)   
  14.  (GLOBAL_DBNAME=mytest)   
  15.  (ORACLE_HOME /opt/ora10)   
  16.  (PROGRAM extproc)   
  17.  
//这个在tnsnames.ora中加上
MYTEST =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ubuntu)(PORT = 1521))
    (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = mytest)
    )
 )

//这个在lister.ora中加上
(SID_DESC =
 (SID_NAME = mytest)
 (GLOBAL_DBNAME=mytest)
 (ORACLE_HOME = /opt/ora10)
 (PROGRAM = extproc)
)

其实就是将各自文件中ora1的部分,拷贝一下,把ora1改成mytest。其实就这些简单。修改这个为了sqlplus连接实例用的。

6,修改实例入口

  1. export ORACLE_SID=mytest  
export ORACLE_SID=mytest

前面提到了环境变量ORACLE_SID=ora1,在这里要换掉,不然用sqlplus会进入到ora1数据库的。

7,创建数据库

  1. //1,sqlplus登录   
  2. sqlplus as sysdba          
  3.   
  4. //2,启动不加载实例   
  5. SQL> startup nomount   
  6.   
  7. //3,从create开始到最后的冒号,直接copy进去执行就行了。   
  8. SQL> create database mytest   
  9. LOGFILE   
  10. GROUP ('$DB_HOME/mytest/redo01.log','$DB_HOME/mytest/redo01_1.log'size 100m reuse,   
  11. GROUP ('$DB_HOME/mytest/redo02.log','$DB_HOME/mytest/redo02_1.log'size 100m reuse,   
  12. GROUP ('$DB_HOME/mytest/redo03.log','$DB_HOME/mytest/redo03_1.log'size 100m reuse   
  13. MAXLOGFILES 50   
  14. MAXLOGMEMBERS 5   
  15. MAXLOGHISTORY 200   
  16. MAXDATAFILES 500   
  17. MAXINSTANCES 5   
  18. ARCHIVELOG   
  19. CHARACTER SET UTF8   
  20. NATIONAL CHARACTER SET UTF8   
  21. DATAFILE '$DB_HOME/mytest/system01.dbf' SIZE 1000M EXTENT MANAGEMENT LOCAL   
  22. SYSAUX DATAFILE '$DB_HOME/mytest/sysaux01.dbf' SIZE 1000M   
  23. UNDO TABLESPACE UNDOTBS1 DATAFILE '$DB_HOME/mytest/undo.dbf' SIZE 500M   
  24. DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '$DB_HOME/mytest/temp.dbf' SIZE 500M;  
//1,sqlplus登录
sqlplus / as sysdba       

//2,启动不加载实例
SQL> startup nomount

//3,从create开始到最后的冒号,直接copy进去执行就行了。
SQL> create database mytest
LOGFILE
GROUP 1 ('$DB_HOME/mytest/redo01.log','$DB_HOME/mytest/redo01_1.log') size 100m reuse,
GROUP 2 ('$DB_HOME/mytest/redo02.log','$DB_HOME/mytest/redo02_1.log') size 100m reuse,
GROUP 3 ('$DB_HOME/mytest/redo03.log','$DB_HOME/mytest/redo03_1.log') size 100m reuse
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXLOGHISTORY 200
MAXDATAFILES 500
MAXINSTANCES 5
ARCHIVELOG
CHARACTER SET UTF8
NATIONAL CHARACTER SET UTF8
DATAFILE '$DB_HOME/mytest/system01.dbf' SIZE 1000M EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '$DB_HOME/mytest/sysaux01.dbf' SIZE 1000M
UNDO TABLESPACE UNDOTBS1 DATAFILE '$DB_HOME/mytest/undo.dbf' SIZE 500M
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '$DB_HOME/mytest/temp.dbf' SIZE 500M;

如果出现下图,表示创建数据库成功

手动创建oracle数据库成功

8,创建ORACLE的数据字典

  1. SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql;   
  2. SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql;  
SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql;
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql;

执行这二个文件,也是挺费时间的。

9,简单设置一下权限

  1. SQL> alter user system identified by mytest;   
  2. SQL> grant sysdba to system;   
  3. SQL> shutdown immediate;         //用shutdown会很慢,加上immediate快很多   
  4. SQL> startup;  
SQL> alter user system identified by mytest;
SQL> grant sysdba to system;
SQL> shutdown immediate;         //用shutdown会很慢,加上immediate快很多
SQL> startup;

10,查看一下表空间,以及管理方式

  1. SQL> select tablespace_name,extent_management from dba_tablespaces;   
  2.   
  3. TABLESPACE_NAME            EXTENT_MAN   
  4. ------------------------------ ----------   
  5. SYSTEM                   LOCAL   
  6. UNDOTBS1               LOCAL   
  7. SYSAUX                   LOCAL   
  8. TEMP                   LOCAL  
SQL> select tablespace_name,extent_management from dba_tablespaces;

TABLESPACE_NAME            EXTENT_MAN
------------------------------ ----------
SYSTEM                   LOCAL
UNDOTBS1               LOCAL
SYSAUX                   LOCAL
TEMP                   LOCAL

ora1和mytest完全一样。

11,遇到问题以及解决

安装过程中因为疏忽,安装没有完成,但是数据库已经建好了,提示不能重建,我尝试的时候,就遇到这样的情况了。遇到这种情况,最好的办法是把数据库删除,重新在装。

  1. SQL> drop database;   
  2. drop database   
  3. *   
  4. ERROR at line 1:   
  5. ORA-12719: operation requires database is in RESTRICTED mode   
  6.   
  7. //解决办法如下   
  8. sql> alter system enable restricted session;   
  9. sql> drop database;  
SQL> drop database;
drop database
*
ERROR at line 1:
ORA-12719: operation requires database is in RESTRICTED mode

//解决办法如下
sql> alter system enable restricted session;
sql> drop database;

小结:创建oracle数据库,比创建mysql数据库要复杂的多了。创建mysql数据库,只要一句话,create database mytest就行了。在磁盘会自动创建一个以数据名命名的文件夹。oracle的强大,也许就在于此吧。

 

作者:海底苍鹰
地址:
http://blog.51yip.com/oracle/1305.html

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21873861/viewspace-1115777/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-06-11