oracle 安装 ,卸载 , 调优,备份 ,导库 笔记


安装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

你可能感兴趣的:(设计模式,oracle,sql,SQL Server,配置管理)