创建oracle数据库,及建完后各种优化

磁盘划分 名称 大小 用途
C 盘(主盘) 50G 安装Windows 2003 64bit 系统
D 盘 184G /oracle  安装数据库软件目录
    /oracle/oradata 数据文件目录
E 盘(主盘) 116G /oracle/oradata 回滚段、临时表空间、日志文件目录(重做日志组(6个,每个500M,后期根据实际情况调整大小))
F 盘 116G /backup 数据库备份目录
    /oralog  归档日志目录

项目 参数 描述
数据库实例名 SMS 根据实际情况指定,这里以SMS为列
内存分配 oracleTOTAL 6G(系统total 8g) oracle 总共使用系统内存
SGA 4.8 G (oracle内存的80%)
PGA 1.2G  
     
数据块大小 16384 默认8192改成 16384
字符集选择 ZHS16GBK  
国家字符集支持   al16utf16(默认)  固定长度两字节 有效率和性能优势
默认语言     simplified chinese  
默认日期格式    china  
连接模式确定 独占模式  
进程数量 500  
     
     
文件目录
数据库软件 D:\oracle  
数据文件 D:\oracle\oradata\sms 这个数据文件指以后使用数据库的时候自己创建的数据文件,如mt表分区建的12个数据文件
控制文件与日志文件 E:\oracle\oradata\sms 建db时,数据文件放这里
归档日志 F:\oralog  
备份文件 F:\backup  
     
文件大小
单个数据文件 4g 包括undo与temp表空间文件
单个控制文件 120M  
单个日志文件 1G  
     
文件数量
数据文件   具体根据表空间大小
控制文件 3组  
日志文件 6组(重做日志,每个大小500M)  
     
回滚表空间
UNDOTBS表空间 30G  
     
临时表空间
TEMP表空间 30G  
     
     
数据表空间
SMS_DATA 130G 数据表空间
SMS_INDEX 50G 索引表空间
     
系统表空间
SYSTEM 2G  
SYSAUX 2G  
     
用户
业务用户 sms/oracle 密码自己制定,这里设置为 oracle
角色 resource,connect  
  dba 根据具体情况决定是否授权
系统用户 sys/oracle  
  system/oracle  
  scott/tiger 测试用,正式上线后可以lock
     

 dbca后:

Database Configuration Assistant

步骤2:数据库模板

--》定制数据库(不会创建demo中的数据文件)

步骤4:管理选项(不用改,不用“启用每日备份”)

步骤6:(默认的--》文件系统)

步骤7:数据库文件所在位置

--》所有数据库文件使用公共位置

先在 d 盘 建立 d:\oracle\oradata    目录,选择 第 二个 。文件位置  输入 d:\oracle\oradata

步骤8:恢复配置

--》指定快速恢复区(勾去掉)--》启用归档(勾上)--》编辑归档模式参数

问:快速恢复区  和归档  有什么区别
答:快速恢复区,是恢复数据库的一种方法,比如可以恢复数据库到 昨天的样子,有点类似于快照。有了归档,可以不用快速恢复区。

 --》归档日志目标

先在  f 盘  建立 oralog 目录,在 归档日志目标1里面输入,f:\oralog

步骤10:初始化参数(很重要!块大小在这写好了以后就不能改了)

创建oracle数据库,及建完后各种优化_第1张图片
选项卡中“字符集”,“连接模式”都不改

--》内存--》定制(注意如果选“典型”--》百分比,更改的都是PGA的大小,SGA和ORACLE进程大小不变,要改SGA,要选下面的“定制”)

内存分配 TOTAL 6G
SGA 4.8 G(oracle内存的80%)
PGA 1.2G

--》手动(是自动管理 还手动管理 sga 和 pga)

sga    4800 M  
pga    1200 M

已经不小了,一共 8g 内存, oracle 用了6g,剩下2g的给 系统用,如果给系统少了,系统慢的话roacle 也会慢

--》调整大小--》块大小,选择“16384”字节--》进程,500

创建oracle数据库,及建完后各种优化_第2张图片

 步骤11:数据库存储

--》控制文件

先在 e 盘 建立   \oracle 目录,然后把 文件目录  的 d 改成 e,改完后结果:

创建oracle数据库,及建完后各种优化_第3张图片

--》表空间--》SYSAUX

文件 目录  路径  d 改成 e,大小  设置 2048mb

 创建oracle数据库,及建完后各种优化_第4张图片

--》system

temp  与 undo 和 users文件目录改成 e:\oracle\oradata  ,temp  与 undo 文件大小 改成 4096mb,users文件大小不变,改完是这样的:

--》重做日志组

问:在F盘建oracle\oralog   ?

答:不是,那是归档目录。这里 文件目录改成  e,文件大小先选择 500m 吧, 这个值需要你数据库跑一段时间才能确定

问:3个重做日志都选在E盘,大小500M?

答:对 2  和 3 也这么做。

没完事呢

选择日志组,点击下面的创建    ,还需要创建 4 5 6,大小一样(这里创建4  5  6时要注意文件路径和1  2  3一样),做完效果:

这就算数据库建完了,后面不用生成脚本也不用存为模板(没有建监听)。

最后一问:现在数据文件放到e盘了,我看昨天的excle,上面写的数据文件放到D盘呢

答:excle D盘这个是   准备放  业务数据表空间文件的,健完数据后,在创建业务表空间。刚才建的是非业务的,所以放到E盘。

此创建过程,2个小时。

 

建完库,优化篇(关闭自动增长,在特定盘建数据表空间和索引表空间之类的):

下面在真正的远程服务器sqlplus中(即cmd黑框)中,经常执行某些命令后出现?????,这是字符集设置问题:

不用担心,默认是英文的

C:>alter session set nls_language='american';
C:>set wrap off linesize 120;

--看库是否建好:

开始菜单  -->   运行 -->执行 cmd

C:>sqlplus /nolog    (此处 /  和 nolog之间无空格,要不然报错。如果出其他的问题:1.检查当前登录系统的用户在不在Oracle_DBA_Group组里。2.环境变量--》系统变量--》新建--》变量名:ORACLE_SID --》变量值,填你创建的oracle的sid,如orclXXX)
SQL>conn / as sysdba
--查看数据库状态:

SQL>select status from v$instance;

--后面自己创建监听

开始菜单 --》 oracle 目录  --》配置和移植工具--》net manager

建监听时   网络服务名,就是数据库名,如orclXXX

这里的服务名,是刚创建的数据库的sid,即你要给哪个数据库创建监听(一个数据库创建一个监听即可)。创建完监听之后,就可以直接在本地服务中连接这个数据库了。在那连接数据库的时候,--》新建“服务命名”(本地的,可以有多个,因为本地可以连多个数据库),这里的名字,写自己认识的名字,可以把服务器ip加后面,是用pl/sql连接的时候自己看的名字

--查看监听状态:

C:>lsnrctl  status

该图是说无监听,确实无,因为监听没有start

--启动监听:

C:>lsnrctl start

创建oracle数据库,及建完后各种优化_第5张图片
问:这是开好了,还是没开好,上面有个error  1060
答:错误不用管。这样表示监听启动了,你在本地电脑 建立个 服务名,就远程可以连接数据库了

--查看所有的数据文件大小和位置:

select name,bytes/1024/1024 mb from v$datafile
      union all
      select name,bytes/1024/1024 mb from v$tempfile 
      union 
      select a.member,b.bytes/1024/1024 mb from v$logfile a,v$log b ;

创建oracle数据库,及建完后各种优化_第6张图片

查询后,发现:redu01 02 03和04 05 06不在同一个目录,但是redu组应该是在同一个目录中的。下面来解决,将redo放到它该放的位置(E:\ORACLE\ORADATA)

so。更改redo组文件位置:

1.查询所有的redo:

 select a.group#,thread#,sequence#,b.member,bytes/1024/1024/1024 GB,archived,b.type,a.status 
        from v$log a, v$logfile b
       where a.group#=b.group#


2.删掉错误的redo组(4,5,6)

alter database drop logfile group 4 ;   

alter database drop logfile group 5;

alter database drop logfile group 6 ; 

3.看删掉没有:

select a.group#,thread#,sequence#,b.member,bytes/1024/1024/1024 GB,archived,b.type,a.status 
        from v$log a, v$logfile b
       where a.group#=b.group#

创建oracle数据库,及建完后各种优化_第7张图片

看到,4  5  6 已经被删掉了。但是发现电脑磁盘上4  5  6  的物理数据文件还在,要不要手动删掉---要,被E:\product整个都删掉,因为oracle装在D盘,E盘根本不可能有product这个目录,是当时建重做组错建的,现在把它都删掉。

4.创建正确目录的redo组(创建需要点时间):

alter database add logfile group 4  'e:\oracle\oradata\orclyxkj\redo04.log' size 500m;  
 alter database add logfile group 5  'e:\oracle\oradata\orclyxkj\redo05.log' size 500m;  
 alter database add logfile group 6  'e:\oracle\oradata\orclyxkj\redo06.log' size 500m;  

执行完后,效果:

创建oracle数据库,及建完后各种优化_第8张图片
到此,这个更改redo组位置,就做好了。

 

--关闭表空间文件(datafile)大小自动增长:

alter database datafile 'e:\oracle\oradata\orclyxkj\system01.dbf' autoextend off ;      

     alter database datafile 'e:\oracle\oradata\orclyxkj\sysaux01.dbf' autoextend off ;    

     alter database datafile 'e:\oracle\oradata\orclyxkj\undotbs01.dbf' autoextend off ;    

--关闭表空间文件(tempfile)大小自动增长:

alter database tempfile 'e:\oracle\oradata\orclyxkj\temp01.dbf'  autoextend off   

--增加临时表空间文件(执行快。temp 是稀疏文件系统(也只有temp是稀疏文件),例如1个文件4g  ,temp就是 表面上 占4g,实际上没有,所以很快)

 alter tablespace temp add tempfile 
   'e:\oracle\oradata\orclyxkj\temp02.dbf'   size 4096m autoextend off, 
   'e:\oracle\oradata\orclyxkj\temp03.dbf'   size 4096m autoextend off, 
   'e:\oracle\oradata\orclyxkj\temp04.dbf'   size 4096m autoextend off,    
   'e:\oracle\oradata\orclyxkj\temp05.dbf'   size 4096m autoextend off,                    
   'e:\oracle\oradata\orclyxkj\temp06.dbf'   size 4096m autoextend off;     

--增加undo表空间数据文件(执行慢。而 undo 属于数据文件,踏踏实实的在 系统上占用 空间 )

alter tablespace undotbs1 add datafile 
   'e:\oracle\oradata\orclyxkj\undo02.dbf'   size 4096m autoextend off, 
   'e:\oracle\oradata\orclyxkj\undo03.dbf'   size 4096m autoextend off, 
   'e:\oracle\oradata\orclyxkj\undo04.dbf'   size 4096m autoextend off,    
   'e:\oracle\oradata\orclyxkj\undo05.dbf'   size 4096m autoextend off,                    
   'e:\oracle\oradata\orclyxkj\undo06.dbf'   size 4096m autoextend off,  
   'e:\oracle\oradata\orclyxkj\undo07.dbf'   size 4096m autoextend off,       
   'e:\oracle\oradata\orclyxkj\undo08.dbf'   size 4096m autoextend off; 

上面没有执行完的,就让它执行,继续:

(这个可以不执行,也可以执行:

远程服务器上,cmd:

sqlplus /nolog

conn / as sysdba

咱们现在要改参数:

sql>set wrap off linesize 120;   --这句话不知道干什么用的,待查


--pl/sql中:

alter system set open_cursors=1000;      

    alter system set  open_links=20 scope=spfile ; 

  alter system set db_files=1022 scope=spfile;      

    alter system set    job_queue_processes=50  ; 

--远程服务器:(重启数据库)

cmd:

SQL>shutdown immediate ;

SQL>startup
问:同样是sql语句,有些只能在远程服务器的cmd小黑框执行,有些可以用dba用户直接在pl/sql中执行。像刚才关闭数据库的,我在pl/sql中命令窗口执行就说,无效的sql语句,为什么啊(比如重启数据库的操作,不能在pl/sql中成功执行,会说“无效sql语句”)

答:你在 plsql 执行的不是真正的 sqlplus

--接下来在本地 plsql重新连接 oracle 数据库,创建数据表空间了 (如mt,这里不是)

问:意思是,到这里,该优化数据库的地方,都做完了,剩下的,就是那些和我业务相关的,建表空间,分区表等等

答:对,在优化的话,需要数据库跑一段时间,生成性能报告后在,具体问题具体分析
--先创建索引表空间(要执行一段时间,当报错说路径错误,比如没有orclyxkj文件夹时,可以手动创建改文件夹,再执行创建语句):

create tablespace tbs_yxkj_index datafile 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index01.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index02.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index03.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index04.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index05.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index06.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index07.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index08.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index09.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_index10.dbf'   size 4096m autoextend off
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

--再创建数据表空间(要执行一段时间):

create tablespace tbs_yxkj_data datafile 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data01.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data02.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data03.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data04.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data05.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data06.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data07.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data08.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data09.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data10.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data11.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data12.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data13.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data14.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data15.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data16.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data17.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data18.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data19.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data20.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data21.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data22.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data23.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data24.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data25.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data26.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data27.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data28.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data29.dbf'   size 4096m autoextend off, 
'd:\oracle\oradata\orclyxkj\tbs_yxkj_data30.dbf'   size 4096m autoextend off
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

建新表空间但是重用之前的数据文件(重用时,默认文件内没有数据):

create tablespace tbs_yxkj_data  datafile 
'd:\oradata\orclyxkj\tbs_yxkj_data02.dbf'   size 4096m reuse , 
'e:\oradata\orclyxkj\tbs_yxkj_data03.dbf'   size 4096m reuse, 
'd:\oradata\orclyxkj\tbs_yxkj_data05.dbf'   size 4096m reuse, 
'd:\oradata\orclyxkj\tbs_yxkj_data08.dbf'   size 4096m reuse, 
'd:\oradata\orclyxkj\tbs_yxkj_data11.dbf'   size 4096m reuse, 
'd:\oradata\orclyxkj\tbs_yxkj_data14.dbf'   size 4096m reuse, 
'e:\oradata\orclyxkj\tbs_yxkj_data15.dbf'   size 4096m reuse, 
'd:\oradata\orclyxkj\tbs_yxkj_data17.dbf'   size 4096m reuse,  
'e:\oradata\orclyxkj\tbs_yxkj_data18.dbf'   size 4096m reuse,  
'd:\oradata\orclyxkj\tbs_yxkj_data20.dbf'   size 4096m reuse, 
'e:\oradata\orclyxkj\tbs_yxkj_data21.dbf'   size 4096m reuse,  
'd:\oradata\orclyxkj\tbs_yxkj_data23.dbf'   size 4096m reuse,  
'e:\oradata\orclyxkj\tbs_yxkj_data24.dbf'   size 4096m reuse, 
'd:\oradata\orclyxkj\tbs_yxkj_data26.dbf'   size 4096m reuse, 
'e:\oradata\orclyxkj\tbs_yxkj_data27.dbf'   size 4096m reuse, 
'd:\oradata\orclyxkj\tbs_yxkj_data29.dbf'   size 4096m reuse
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;


创建用户,并授予dba权限,以及授权:

create user username
identified by "pwd" default tablespace tbs_yxkj_data;

grant connect,resource,dba to username;

drop public synonym t_sys_user;
grant all privileges on t_sys_user to yxclient;
create public synonym t_sys_user for ydsoft_test.t_sys_user; 


 


 

你可能感兴趣的:(oracle,数据库,服务器,database,System,sms)