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_dest和log_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_DEST 与 LOG_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_DEST 与 LOG_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博客 ” ,链接:https://blog.itpub.net/29439655/viewspace-1407580/
,如需转载,请注明出处,否则将追究法律责任。