ITPub博客

首页 > 数据库 > Oracle > OCP_01

OCP_01

原创 Oracle 作者:Michael_DD 时间:2014-02-28 14:41:47 0 删除 编辑
1.oracle 体系结构

2.linux install oracle,初始化
oracle DB = 实例+数据库
内存结构:SGA(共享内存段)
         pool:data buffer(db_cache_size), log buffer(增加redo log 日志组个数或者每个日志大小), shared pool(绑定变量) , large pool(size,rman备份), java pool, streams              pool---动态管理        
         PGA(单个用户私有)
         10g:SGA可以动态管理,SGA_TARGET(30-->40,动态),SGA_MAX_SIZE(50G,静态)--提变更,停库该参数
         11g:SGA+PGA: memory_target 建议不超过物理内存的2/3

进程:后台进程:DBWN,LGWR,CKPT,SMON,PMON,ARCn,RECO
      服务器进程:专用连接

存储结构:物理:数据文件,数据块
          逻辑:表空间-段-区-块


安装install:(linux 5.4  oracle11g)
root/oracle
1.vm
grub--password  ,    root单用户, passwd


1.台式机和里面的虚拟机可以ping通,用于下载oracle软件
setup 配置IP
service network restart   重启网络
ifconfig   查看ip

root#
vi /root/.bash_profile   
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin  
source  /root/.bash_profile    生效文件

2。安装包
a.ISO,并且mount到VM---connect   挂载光盘
root#
mount /dev/hda /mnt    把/dev/hda   挂载到  /mnt   目录下
--/mnt/Server

c.yum配置文件
root#
cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# more rhel-source.repo 
[rhel-source]
name=Red Hat Enterprise Linux $releasever - Source
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

c.yum
root#
rpm -qa | grep gcc
yum install -y gcc*

root#
install rpm package:
  yum install -y  compat*
  yum install -y elfutils*
  yum install -y gcc*
  yum install -y libaio*
  yum install -y numactl*
  yum install -y sysstat
  yum install -y unixODBC*

user/group:
root#
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
usermod -g oinstall -G dba oracle
id oracle
passwd oracle

#64G root#ry
vi /etc/sysctl.conf   修改内核参数

fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 2097152 
kernel.shmmax = 536870912 
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128 
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default = 262144 
net.core.rmem_max = 4194304 
net.core.wmem_default = 262144 
net.core.wmem_max = 1048586 


fs.aio-max-nr = 1048576    #同时可以拥有的异步IO请求数目
fs.file-max = 6815744    #系统中允许最大文件数
kernel.shmall = 2097152   #可以使用的共享内存的总量 , 物理内存/4096
kernel.shmmax = 536870912   #kernel.shmmax 物理内存的一半,官方建议>SGA 30G
kernel.shmmni = 4096   #系统最大共享内存段的最大数目
kernel.sem = 250 32000 100 128   每个信号对象集的最大信号对象数
net.ipv4.ip_local_port_range = 9000 65500  #IPV4端口范围
net.core.rmem_default = 262144   #套接字接收缓冲区大小,缺省值
net.core.rmem_max = 4194304   #套接字接收缓冲区大小,最大值
net.core.wmem_default = 262144  #套接字发送缓冲区大小,默认值
net.core.wmem_max = 1048586   #套接字发送缓冲区大小,最大值

sysctl -p     #立即生效


vi /etc/security/limits.conf    #参数
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536  #default:1024,不够用,一定要改
oracle soft stack 10240

//创建安装目录
mkdir -p /u01/app/      
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/

远程:VNC,X manager

iptables -L

service iptables  stop 
vncserver 
vncpasswd 

redhat : bash
AIX:ksh

#配置oracle用户环境
su - oracle
vi /home/oracle/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=tk
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3
export PATH=$PATH:$ORACLE_HOME/bin


source /home/oracle/.bash_profile 


root#
wget http://192.168.1.188/p10404530_112030_LINUX_1of7.zip
wget http://192.168.1.188/p10404530_112030_LINUX_2of7.zip


ls -lrt 
chown -R oracle:oinstall  database    赋权限

#进图形化界面
root#
 xhost +

chown -R oracle:oinstall /u01
chmod  -R 777  /u01

*注意安装软件必须使用oracle用户解压缩


[oracle@localhost ~]$ whoami
oracle
[oracle@localhost ~]$ cd /u01/soft
[oracle@localhost soft]$ ls
database  p10404530_112030_LINUX_1of7.zip  p10404530_112030_LINUX_2of7.zip
[oracle@localhost soft]$ cd database/
[oracle@localhost database]$ ls
doc  install  response  rpm  runInstaller  sshsetup  stage  welcome.html
[oracle@localhost database]$ ./runInstaller 


//运行两个脚本文件
/u01/app/oraInventory/orainstRoot.sh 
/u01/app/oracle/product/11.2.0.3/root.sh 


#listener
oracle-->netca
lsnrctl status 


oracle ---> dbca

OLTP联机事务处理系统

OLAP联机分析处理


AL32UTF8 *一定要记得改下


实例 数据库
单节点:一对一 tk --- tk 
RAC   : 多对以 tk1,tk2---tk

1.查一个服务器有多少ORACLE DB
ps -ef | grep smon

[oracle@localhost ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.3.0 
Copyright (c) 1996, 2011 Oracle Corporation.  All rights reserved.
https://localhost.localdomain:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is running. 
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0.3/localhost.localdomain_tk/sysman/log 


*需要关闭防火墙,否则其它主机连你的数据库服务器会被阻止,setup 修改。


常规启动数据库:
[oracle@localhost ~]$ sqlplus /nolog
SQL> conn /as sysdba;

spfile:
SQL> show parameter spfile;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/11.2.0
                                                 .3/dbs/spfiletk.ora

1.审计    开审计
audit_trail
audit_sys_operations
SQL> alter system set audit_sys_operations=true scope=spfile;


2.归档   开启归档:
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     4
Current log sequence           6
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount;    
ORACLE instance started.


Total System Global Area  464519168 bytes
Fixed Size                  1345660 bytes
Variable Size             348129156 bytes
Database Buffers          109051904 bytes
Redo Buffers                5992448 bytes
SQL> alter database mount;


Database altered.
--startup mount;

SQL> select status from v$instance;


STATUS
------------
MOUNTED


SQL> alter database archivelog;

Database altered.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     4
Next log sequence to archive   6
Current log sequence           6
SQL> 
SQL> alter system set log_archive_dest_1='location=/u01/archivelog';
System altered.

SQL> archive log list;  
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/archivelog
Oldest online log sequence     4
Next log sequence to archive   6
Current log sequence           6
db_recovery_file_dest
db_recovery_file_dest_size

SQL> alter database open;   

Database altered.

SQL> alter system switch logfile;     切日志

System altered.
参数:
log_archive_dest_1     --考虑是用文件系统还是FRA管理
db_recovery_file_dest_size    --考虑如果存放7天的归档需要多大的空间
db_recovery_file_dest      --FRA对应的位置
archive_lag_target --900s

alter system set processes=1000 scope=spfile;
alter system set db_files=1000 scope=spfile;
shutdown immediate;
startup;

强制写日志
alter database force logging
(一些nologging的操作也会写日志,保证standby数据库可以正确恢复。)
(如果没修改这个,那么有些数据库操作可以不写日志,比如create index.............nologging)
(在DataGuard环境下,如果主库不加alter database force logging . 主库用工具做大量数据插入而不到日志中去,此时插入的数据不会同步到DataGuard数据库。加入alter        database force logging则数据都会同步过去)

tail -f alert_tk.log

flash recovery area

(转载)
闪回恢复区:

1. 设置闪回恢复区

db_recovery_file_dest
指定闪回恢复区的位置
db_recovery_file_dest_size

指定闪回恢复区的可用空间大小

db_flashback_retention_target
指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的flash log。所以这个参数要和db_recovery_file_dest_size配合修改。

 

SQL> ALTER SYSTEM SET db_recovery_file_dest_size=3g SCOPE=BOTH;

SQL> ALTER SYSTEM SET db_recovery_file_dest=' D:\app\Administrator\flash_recovery_area ' SCOPE=BOTH;

SQL> show parameter db_recovery_file_dest

SQL> show parameter db_flashback


2. 启动flashback database
     
默认情况数据库的flashback database是关闭,可以在mount exclusive状态下打开。在设置了闪回恢复区后,可以启动闪回数据库功能。

SQL> archive log list; --数据库必须已经处于归档模式


SQL> shutdown immediate;


SQL> startup mount;


SQL> alter database flashback on;


SQL> alter database open;


SQL> select flashback_on from v$database;


3. 取消闪回恢复区
db_recovery_file_dest参数设置为空,可以停用闪回恢复区。如果已经启用flashback database,则不能取消闪回恢复区。


SQL> shutdown immediate


SQL> startup mount;


SQL> alter database flashback off;


SQL> alter database open;


SQL> alter system set db_recovery_file_dest='';


SQL> show parameter db_recovery_file_dest

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest string

db_recovery_file_dest_size big integer 3852M


注意:

(1)DB_RECOVERY_FILE_DEST_SIZE 只有在 DB_RECOVERY_FILE_DEST 清空之后才可以清空。

2)初始化参数 db_recovery_file_dest_size 的设定有一点点需要注意的地方:

文件的第0块和操作系统数据块头的空间大小不包含在内,该参数并不代表实际占用的空间大小。如果空间被压缩、镜像、RAID 的话,该参数的值意义是不一样的

  

4. 闪回恢复区的内容
所有和恢复相关的文件都可以存放到闪回恢复区
SQL> select file_type from v$flash_recovery_area_usage;

  

上面视图中查询的结果列出的所有类型的文件,都可以利用闪回恢复区来存放、管理。

 

在一些 10g 的动态视图里( V$CONTROLFILE, V$LOGFILE, V$ARCHIVED_LOG, V$DATAFILE_COPY)的新的列 IS_RECOVERY_DEST_FILE ,指明相关的文件是否在恢复区内。

 

SELECT recid, blocks, is_recovery_dest_file

FROM v$archived_log

WHERE recid < 5;


SQL>

 


5 . 闪回恢复区的一些限制
如果设置了闪回恢复区,则log_archive_destlog_archive_duplex_dest将不可用。


SQL> alter system set log_archive_dest='e:/' ;

alter system set log_archive_dest='e:/'

*

1 行出现错误:

ORA-02097: 无法修改参数, 因为指定的值无效

ORA-16018: 无法将 LOG_ARCHIVE_DESTLOG_ARCHIVE_DEST_n

DB_RECOVERY_FILE_DEST 一起使用

 

 

SQL> alter system set log_archive_duplex_dest='e:/';

alter system set log_archive_duplex_dest='e:/'

*

1 行出现错误:

ORA-02097: 无法修改参数, 因为指定的值无效

ORA-16018: 无法将 LOG_ARCHIVE_DUPLEX_DESTLOG_ARCHIVE_DEST_n

DB_RECOVERY_FILE_DEST 一起使用

 

说明:

设置闪回恢复区后,如果没有设置过log_archive_dest_n参数,则归档日志默认是保存到该区域的。实际上,oracle是通过隐式的设置log_archive_dest_10='location=USE_DB_RECOVERY_FILE_DEST'来实现的。所以,如果修改过log_archive_dest_n将归档日志保存到其他位置,也可以修改该参数继续使用闪回恢复区。

多个数据库的闪回恢复区可以指定到同一个位置,但是db_name不能一样,或者db_unique_name不一样。RAC的闪回恢复区必须位于共享磁盘上,能被所有实例访问。

 

 

6. 闪回恢复区的空间管理

闪回恢复区中添加或删除文件等变化都将记录在数据库的 alert 日志中,Oracle 10g 也针对该新特性提供了一个新的视图, DBA_OUTSTANDING_ALERTS,通过该视图可以得到相关的信息。

 

SQL> DESC dba_outstanding_alerts

名称 是否为空? 类型

----------------------------------------- -------- ----------------------------

 

SEQUENCE_ID NUMBER

REASON_ID NOT NULL NUMBER

OWNER VARCHAR2(30)

OBJECT_NAME VARCHAR2(513)

SUBOBJECT_NAME VARCHAR2(30)

OBJECT_TYPE VARCHAR2(64)

REASON VARCHAR2(4000)

TIME_SUGGESTED TIMESTAMP(6) WITH TIME ZONE

CREATION_TIME TIMESTAMP(6) WITH TIME ZONE

SUGGESTED_ACTION VARCHAR2(4000)

ADVISOR_NAME VARCHAR2(30)

METRIC_VALUE NUMBER

MESSAGE_TYPE VARCHAR2(12)

MESSAGE_GROUP VARCHAR2(64)

MESSAGE_LEVEL NUMBER

HOSTING_CLIENT_ID VARCHAR2(64)

MODULE_ID VARCHAR2(64)

PROCESS_ID VARCHAR2(128)

HOST_ID VARCHAR2(256)

HOST_NW_ADDR VARCHAR2(256)

INSTANCE_NAME VARCHAR2(16)

INSTANCE_NUMBER NUMBER

USER_ID VARCHAR2(30)

EXECUTION_CONTEXT_ID VARCHAR2(128)

ERROR_INSTANCE_ID VARCHAR2(142)

 

 

在闪回恢复区中的空间使用超过 85% 的时候,数据库将会向 alert 文件中写入告警信息。而当超过 97% 的时候将会写入严重告警信息。当闪回恢复区空间不够的时候,Oracle将报告如下类似的错误:

ORA-19809: limit exceeded for recovery files

ORA-19804: cannot reclaim 52428800 bytes disk space from 1258291200 limit

 

这个时候查询 dba_outstanding_alerts:

SQL> select reason,object_type,suggested_action from dba_outstanding_alerts;

 

REASON OBJECT_TYPE SUGGESTED_ACTION

------------------------------ -------------------- ----------------------------------------

db_recovery_file_dest_size of RECOVERY AREA Add disk space and increase db_recovery_

1258291200 bytes is 88.20% use file_dest_size, backup files to tertiary

d and has 148509184 remaining device, delete files from recovery area

bytes available. using RMAN, consider changing RMAN rete

ntion policy or consider changing RMAN a

rchivelog deletion policy.

 

 

同时,oracle在alert中还会给出解决该问题的建议
************************************************************************
You have following choices to free up space from flash recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMANB ACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating system command was used to delete files, then use RMAN CROSSCHECK and DELETE EXPIRED commands.
************************************************************************

 

 

V$RECOVERY_FILE_DEST视图 包含闪回恢复区的相关信息:

SQL> desc V$RECOVERY_FILE_DEST

名称 是否为空? 类型

----------------------------------------- -------- ---------------------

 

NAME VARCHAR2(513)

SPACE_LIMIT NUMBER

SPACE_USED NUMBER

SPACE_RECLAIMABLE NUMBER

NUMBER_OF_FILES NUMBER

 

SQL> select * from v$recovery_file_dest;
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES

---------- ----------- ---------- ----------------- ---------------

4039114752 0 0 0

 

 

通过查询视图v$flash_recovery_area_usage,可以获得当前闪回恢复区的空间使用情况,并且可以知道是哪些文件占中了空间,据此可以做出相应的处理,或者加大闪回恢复区,或者移走相应的文件。


SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE

-------------------- ------------------ -------------------------

CONTROL FILE 0 0

REDO LOG 0 0

ARCHIVED LOG 0 0

BACKUP PIECE 0 0

IMAGE COPY 0 0

FLASHBACK LOG 0 0

FOREIGN ARCHIVED LOG 0 0

 

如果闪回恢复区空间耗尽,且归档路径设置到了闪回恢复区中,则由于日志无法归档,数据库会hang住。所以,对于生产库,如果将归档放到闪回恢复区中,需要密切关注闪回恢复区的空间使用情况,否则一旦闪回恢复区的空间用尽,将导致数据库无法提供服务。
(转载)

改审计开归档

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

上一篇: 笔记mysql优化
下一篇: OCP_02
请登录后发表评论 登录
全部评论

注册时间:2014-02-22

  • 博文量
    326
  • 访问量
    2460236