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

    技术2022-05-11  79

       

    安装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.DMPscp 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)  syssystem的密码要复杂,并且限个别人知道

    4)  所有创建的用户不能有DBA权限

     

    7. 备份策略要求

    1)启动数据库的归档模式,下面的内容非常详细了

    2.180归档位置在 /home/oracle/oracle/flash_recovery_area/ORCL/onlinelog

     

    Oracle 10g 中,只要启动数据库的归档模式,Oracle就会启用自动归档,从而避免了 10g 以前由于用户疏忽所带来的一系列问题。$ sqlplus "/ as sysdba"SQL*Plus: Release 10.1.0 .3.0 - Production on Wed Apr 13 09:53:25 2005Copyright (c) 1982, 2004, Oracle.  All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit ProductionWith the Partitioning and Data Mining optionsSQL> archive log list;Database log mode              No Archive ModeAutomatic archival             DisabledArchive destination            USE_DB_RECOVERY_FILE_DESTOldest online log sequence     25Current log sequence           27SQL> show parameter log_archive_startNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------log_archive_start                    boolean     FALSESQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mount;ORACLE instance started.Total System Global Area 3204448256 bytesFixed Size                  1304912 bytesVariable Size             651957936 bytesDatabase Buffers         2550136832 bytesRedo Buffers                1048576 bytesDatabase mounted.SQL> alter database archivelog;Database altered.SQL> alter database open;Database altered.SQL> archive log list;Database log mode              Archive ModeAutomatic archival             EnabledArchive destination            USE_DB_RECOVERY_FILE_DESTOldest online log sequence     25Next log sequence to archive   27Current log sequence           27SQL>

    2)日备份

    采用本地/异地导出的方式,运维组和柴琦搞定吧

    Zhangbo:

    鉴于现在新的uions_db服务器的归档日志的隐患问题(当前运行的重做日志美满一次 42M ,便会归一次档,产生一个 42M 的归档日志文件,从 200721219点 到 2007213日中午 1200,已产成总量为 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数据库空间清理文档

    方法一:(在内网这么操作)

    现使用的3oracle数据库服务器磁盘空间满主要是由于归档文件长时间没有清理导致,因此需要定期对数据库归档文件进行清理,现将具体操作步骤总结如下:

    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、  链接端的tomcatapache

    安装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应用... 15


    最新回复(0)