安装Oracle数据库
0. 安装系统(全安装)
以下参考: http://my.opera.com/jlake/blog/show.dml/98701
1. 做个链接
ln -s /usr/lib/libstdc++.so.6.0.3 /usr/lib/libstdc++.so.5
如果不做此链接,在安装过程中建好数据库,将会出现不能链接不上数据库问题。
2.添加下面的行到/etc/security/limits.conf以修改你的资源限制:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
3.编辑/etc/sysctl.conf文件,在后面添加下参数做微调操作系统内核
kernel.core_uses_pid=1
kernel.shmall=2097152
kernel.shmmax=2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
说明: shmmax内核参数定义单个共享内存段的最大值,如果该参数设置小于Oracle SGA设置,
那么SGA就会被分配多个共享内存段。这在繁忙的系统中可能成为性能负担,带来系统问题。
more /proc/sys/kernel/shmmax
4. # sysctl -p
5.创建用户和组及相关目录
--创建dba组
# /usr/sbin/groupadd dba
--创建oinstall组
# /usr/sbin/groupadd oinstall
--创建oracle用户并设置用户所属组
# /usr/sbin/useradd -g oinstall -G dba -m oracle
--创建相关安装目录
# mkdir -p /opt/ora10/product
# mkdir /var/opt/oracle
--设置目录所有者和权限
# chown -R oracle.oinstall /opt/ora10
# chown -R oracle.dba /var/opt/oracle
# chmod -R 775 /opt/ora10
# chmod -R 775 /var/opt/oracle
6. 修改Oracle密码
passwd oracle
7. 利用root修改10201_database_linux32.zip权限,使oracle能访问
8. root创建目录
chown -R oracle.oinstall /home/oracle/oracle/product
chown -R oracle.dba /home/oracle/oracle
chmod -R 775 /home/oracle/oracle/product
chmod -R 775 /home/oracle/oracle
9. 设置oracle的环境变量
export ORACLE_HOME="/home/oracle/oracle/product"
export ORACLE_BASE="/home/oracle/oracle"
export ORACLE_SID=orcl
export NLS_LANG="american_america.ZHS16GBK"
export LD_LIBRARY_PATH="$ORACLE_HOME/lib:/usr/lib:/lib"
export PATH="$ORACLE_HOME/bin:$PATH"
注意:安装时候点选得字符集要注意 包含为 AL32UTF8
卸载Oracle数据库
rm -rf /etc/ora*
rm -rf /home/oracle/ (此为oracle配置文件路径)
Oracle安装成功后配置
1.登陆管理控制台
2.调系统参数
Open_cursors: 一个session能打开的游标个数,从300调到500
Sga_max_siz: oracle启动后最大内存分配数,从608174080(580M)调到1476395008(1408M)
Sga_target: oracle启动后实际内存分配数,从608174080(580M)调到1476395008(1408M)
Sort_area_size 数据库排序使用的内存数,从608174080(64M)调到104857600 (100M)
Process :oracle能使用的最大进程数,这个数*1.5表示可以支持的session数据,
从150调到300
参数的修改办法,郁闷,居然9i的控制台无法修改10g的参数,只好用命令了。
1. 修改pfile文件,红色的是修改的
##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_file_multiblock_read_count=16
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
###########################################
# Database Identification
###########################################
db_domain=""
db_name=orcl
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=/home/oracle/oracle/admin/orcl/bdump
core_dump_dest=/home/oracle/oracle/admin/orcl/cdump
user_dump_dest=/home/oracle/oracle/admin/orcl/udump
###########################################
# File Configuration
###########################################
control_files=("/home/oracle/oracle/oradata/orcl/control01.ctl", "/home/oracle/oracle/oradata/orcl/control02.ctl", "/home/oracle/oracle/oradata/orcl/control03.ctl")
db_recovery_file_dest=/home/oracle/oracle/flash_recovery_area
db_recovery_file_dest_size=2147483648
###########################################
# Job Queues
###########################################
job_queue_processes=10
###########################################
# Miscellaneous
###########################################
compatible=10.2.0.1.0
###########################################
# Processes and Sessions
###########################################
processes=300
###########################################
# SGA Memory
###########################################
sga_target=1476395008
###########################################
# Security and Auditing
###########################################
audit_file_dest=/home/oracle/oracle/admin/orcl/adump
remote_login_passwordfile=EXCLUSIVE
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=orclXDB)"
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=201326592
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
#add by hugh
sort_area_size = 104857600
open_cursors = 500
2. 验证刚才的修改是否正确
sqlplus / as sysdba;
shutdown abort // 这里小心,如果时正常使用的数据库,而不是刚装的数据库,不要使用abort
#让数据库从新的初始化文件启动
startup pfile=/home/oracle/oracle/admin/orcl/pfile/init.ora.1122007174739
#把新的配置文件应用的默认的配置文件,这样以后启动数据库直接startup就好了
create spfile from pfile='/home/oracle/oracle/admin/orcl/pfile/init.ora.1122007174739'
#关闭数据库
shutdown
#启动数据,正常启动表示成功修改了配置文件,你可以通过工具查一下那些参数是否真的被修改了
starup
3.锁住一些没有用的用户
锁了sysman
4. 扩表空间
表空间设计:将来一个用户使用一个表空间,便于备份
同时所有用户使用TEMP做完临时表空间
扩system等表空间
System表空间用来存储用户字典,所以需要足够大;
措施:增加一个数据文件,500M,自动扩展;
UNDO表空间用来保存回滚时需要的数据,需要足够大;
措施:把数据文件从35M扩到300M,自动扩展;
Temp是排序等操作使用,所以需要足够大;
措施:增加一个数据文件,200M,自动扩展;
创建Union表空间
数据文件为:unions01.dbf
数据文件大小:500M,自动扩展
5. 创建新用户及用户导入
ditu51_unions
要点: 使用默认表空间为union
授权:
SQL> grant resource to ditu51_unions;
Grant succeeded.
如果要从别的数据库中导入用户到新的数据库中(chaiqi)
第一步:
--从老的机器上导出
exp DITU51_UNIONS/DITU51_UNIONS file=DITU51_UNIONS.DMP
scp DITU51_UNIONS.DMP 192.168.2.180:/home/oracle
第二步:
--删除用户
DROP USER DITU51_UNIONS CASCADE
--创建用户 并且给 用户 赋予权限,必须要付给 dba用户权限不然无法导入。
create user DITU51_UNIONS identified by DITU51_UNIONS;
grant connect to DITU51_UNIONS;
grant resource to DITU51_UNIONS;
grant dba to DITU51_UNIONS;
第三步:
--导入用户
imp DITU51_UNIONS/DITU51_UNIONS file=DITU51_UNIONS.DMP full=Y
第四步:
删除 用户的dba权限
一定要注意oracle 字符集的问题!并且这个问题一定要在安装的时候注意!
select * from nls_database_parameters
6. 安全策略要求
2.180这台数据库硬件非常好(当然是相对的 J),这台机器的安全要重点考虑,我先考虑几块:
1) 指定一个DBA,主要工作是系统备份、用户创建、表空间创建等工作
2) 运维组重点考虑网络和系统方面的安全,比如口令等
3) sys和system的密码要复杂,并且限个别人知道
4) 所有创建的用户不能有DBA权限
7. 备份策略要求
1)启动数据库的归档模式,下面的内容非常详细了
2.180归档位置在 /home/oracle/oracle/flash_recovery_area/ORCL/onlinelog
在Oracle10g中,只要启动数据库的归档模式,Oracle就会启用自动归档,从而避免了10g以前由于用户疏忽所带来的一系列问题。
$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.1.0.3.0 - Production on Wed Apr 13 09:53:25 2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning and Data Mining options
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 25
Current log sequence 27
SQL> show parameter log_archive_start
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean FALSE
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 3204448256 bytes
Fixed Size 1304912 bytes
Variable Size 651957936 bytes
Database Buffers 2550136832 bytes
Redo Buffers 1048576 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
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 25
Next log sequence to archive 27
Current log sequence 27
SQL>
2)日备份
采用本地/异地导出的方式,运维组和柴琦搞定吧
Zhangbo:
鉴于现在新的uions_db服务器的归档日志的隐患问题(当前运行的重做日志美满一次42M,便会归一次档,产生一个42M的归档日志文件,从2007年2月12日19点到2007年2月13日中午12:00,已产成总量为166M的归档日志文件)
A.每晚进行一次联机备份操作,备份当天所有数据文件、当天所有归档日志文件、和一个控制文件。
写一个脚本,(并添加到/etc/contab,每天凌晨三点执行,)scp 到创建了信任关系的另一台机器的相应的文件夹下,在这台机器上,按日期分类,并永久保留。(还要再细化)
B.每周进行一次输出(Export)操作,既逻辑备份。也就是以用户模式,备份成.dmp格式的文件每周的逻辑备份是否可以采用如下脚本?
#!/bin/bash
export ORACLE_HOME="/home/oracle/oracle/product/10.2.0"
export ORACLE_BASE="/home/oracle/oracle"
export ORACLE_SID=orcl
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export PATH="$ORACLE_HOME/bin:$PATH"
/oradata/oracle/product/10.1.0.3/bin/exp USERID=blog_blog/51ditublog1020lingtu FILE=/backup/sh/ditu_blog/`date '+%y%m%d%H'`.dmp rows=Y indexes=Y
constraints=Y grants=Y triggers=Y consistent=Y
zip -r /backup/sh/ditu_blog/`date '+%y%m%d%H'`.zip /backup/sh/ditu_blog/*.dmp
rm /backup/sh/ditu_blog/*.dmp
然后再写一个脚本,(并添加到/etc/contab,每周运行一次,也可手动执行)scp 到创建了信任关系的另一台机器的相应的文件夹下,在这台机器上,按日期分类,并永久保留,在192.168.2.180上,保留最近两周(可根据硬件情况商定)的归档日志文件,删除两周以前的备份文件。备份方式均为联机。
3)归档日志的清理,把归档日志空间调整60G
清理的周期和办法DBA来完成,这个工作一定要有
Caoguoanglin:
因为oracle 10G使用闪存归档模式,默认是2G,如果出现归档日志满2G,,现在把这个归档日志调整为60G.
过一段时间,我们清理一下归档日志即可.
调整归档日志的空间方法如下:
1. sqlplus '/as sysdba '
2. alter system set db_recovery_file_dest_size=60G scope=both;
这个就是调整这个归档日志的方法,但是这个归档日志,还是需要过一段时间清理一下,因为这个会导致磁盘满的.
下面我们会定期清理一下这个归档日志的.
Oracle数据库空间清理文档
方法一:(在内网这么操作)
现使用的3台oracle数据库服务器磁盘空间满主要是由于归档文件长时间没有清理导致,因此需要定期对数据库归档文件进行清理,现将具体操作步骤总结如下:
1、 因为清理归档文件需要关闭数据库,因此应该在数据库使用量最少的时候进行。
2、 通过oracle客户端管理器关闭正在连接的会话。
3、 关闭数据库
$su – oracle
$sqlplus ‘/as sysdba’
Sql>shutdown;
4、 将/oradata/oracle/archive目录下的归档文件移出备份。
5、 启动数据库
$su – oracle
$sqlplus ‘/as sysdba’
Sql>startup;
6、 重新启动连接数据库的应用服务。
7、 链接端的tomcat与apache
安装Oracle数据库... 1
卸载Oracle数据库... 3
Oracle安装成功后配置... 4
1.登陆管理控制台... 4
2.调系统参数... 4
3.锁住一些没有用的用户... 7
4. 扩表空间... 7
扩system等表空间... 7
创建Union表空间... 8
5. 创建新用户及用户导入... 10
6. 安全策略要求... 11
7. 备份策略要求... 11
1)启动数据库的归档模式,下面的内容非常详细了... 11
2)日备份... 12
3)归档日志的清理,把归档日志空间调整60G.. 13
Oracle数据库空间清理文档... 14
目前用到Oracle数据库的51ditu应用
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chaiqi/archive/2007/02/26/1515203.aspx