当前位置:  数据库>oracle

Linux下手动创建Oracle数据库过程

    来源: 互联网  发布时间:2017-05-24

    本文导语: 今天发现一个Oracle测试库的字符集设置不正确,原本的字符集是UTF-8,正确的字符集应该是ZHS16GBK,因为UTF-8是ZHS16GBK的超集,无法修改,只能重建数据库,幸好该测试库上还没有数据。 参考阅读: 手动创建Oracle数据库实例 手工...

今天发现一个Oracle测试库的字符集设置不正确,原本的字符集是UTF-8,正确的字符集应该是ZHS16GBK,因为UTF-8是ZHS16GBK的超集,无法修改,只能重建数据库,幸好该测试库上还没有数据。

参考阅读:

手动创建Oracle数据库实例

手工创建Oracle数据库

Linux环境下手工创建Oracle 10g数据库

虽然用DBCA也可以创建数据库,但我个人更喜欢手工创建数据库,其主要步骤如下(数据库版本11.2):

1. 设置ORACLE_SID

默认的ORACLE_SID是orcl,我个人强烈建议起个唯一、且意义的名字,比如**testdb,**proddb等等,在Oracle用户下执行:

export ORACLE_SID=lxdbtest

2. 重建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 sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 25 21:01:16 2013

Copyright (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.sql

7. 修改system,sys的密码

alter user sys identified by ***;
alter user system identified by ***;

8. 创建SPFILE

SQL> create spfile from pfile;

File created.

重启数据库后,将以spfile取代pfile.

 

最后,再顺便说下如何删除数据库。在删除数据库之前,数据库必须是在mount和restricted session状态,具体如下:

SQL> startup mount

SQL> alter system enable restricted session;

System altered.

SQL> drop database;

Database dropped.

数据库删除成功后,所有的在线日志文件、数据文件都会一并被删除,但归档日志和备份文件不会被删除。


    
 
 

您可能感兴趣的文章:

  • Linux打开的文件描述符必须手动close吗
  • 手动改写了lilo.conf,启动时无法进入linux了,怎么解决?
  • 红帽企业Linux.5.4的手动安装
  • linux中手动启动进程
  • 在安装linux7.2时忘了选择FTP,怎样手动安装FTP?
  • 如何在linux shell 下启动/停止samba共享服务,如何手动配置?
  • LINUX的电影播放器已经搜索到插件,可是装不了,有其他手动的办法么
  • Linux下谁能玩转网卡?来吧高分求助!改/伪装MAC地址,改单/双功模式,手动10/100M速度模式?
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • 请教:在linux reahat7.2下怎么手动启动ftp的服务?
  • Linux上手动释放Swap内存
  • 在虚拟机上安装linux,在手动分区时有个警告:说sda分区表无法读取,如果要创建,需初始化,此驱动上的所有数据会丢失
  • linux系统下面,有10g的图片文件夹,现在要手动移到另一个目录,有没有比较快的只花几秒钟就搞定的方法来移动这些图片呢?
  • Linux下手动编译安装PHP扩展的例子分享
  • 急.....,把公司的linux系统的grub搞出问题来了,每次都要手动启动.
  • 如何手动制作linux超小系统
  • 在Linux平台上手动创建Oracle 10g数据库
  • Linux环境下Oracle 10gR2 手动建立数据库步骤
  • linux服务器系统中手动配置lamp服务器的经验分享
  • 菜鸟在c盘装了win2000,想在剩下的空间装Red Hat Enterprise Linux 3,在创建linux分区的时候,不知道都创建什么分区??我知道要创建一个
  • linux如何创建一个共享内存 可以mount 可以创建目录之类 跟硬盘分区一样
  • 急!linux下mysql的创建用户组和创建用户命令不能生效啊????
  • linux普通用户创建文件或目录
  • Linux创建进程的问题,请高手帮忙解答一下?
  • Linux 代理 一个客户端来就创建一个连接
  • 菜鸟问题:怎样创建一个对所有文件只有只读权限的linux帐号,谢谢!
  • 在linux上如何知道文件的详细信息,如创建和结束时间等? iis7站长之家
  • linux 用户创建
  • linux下如何创建一个user 和 group?
  • 在LINUX的虚拟文件系统下如何创建一个文件?
  • 在linux上如何知道文件的详细信息,如创建和结束时间等?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • linux文本模式下,怎样回看前面被屏幕滚掉的命令操作过程或者我的操作过程
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • linux下的编程主旨思想是在面向过程还是面向对象的?谢谢!!
  • linux初学者,咨询一下学习过程
  • 请求linux的安装过程视频。。。
  • 100分请教ColdFire或其他nommu的cpu下linux具体启动过程.
  • 我刚开始学linux,现在想装一个lumaQQ,请高手说一下详细过程!
  • 现在的linux内核载入过程是怎么样的呢?
  • linux下利用定时任务执行db2存储过程
  • linux的启动过程~ 从源代码的角度
  • 急需高手帮忙!linux启动过程中的问题!
  • 请教linux命令行的解析过程是怎样的
  • Linux安装过程需要注意什么?河东兄。
  • 救命。Linux 安装过程中 如何截取安装的图片
  • linux定时调用存储过程的问题
  • 关于linux安装过程的不解
  • Linux安装过程的问题,急。
  • 哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • 请问大侠如何把linux安装过程中的画面保存下来?
  • Linux fork函数的系统调用实现过程是什么呢?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,