要求:对于代码文件来说上传时使用’ASCII’传递模式,而对于备份的数据文
件来说我们要采用binary模式。
4.3.14 chmod
说明:更改文件访问权限 语法:chmod 权限 文件
示例:chmod +x startup_needjdk.sh(为文件增加执行权限)
chmod 777 startup_needjdk.sh(使所有用户不受限的读、写、执行文件)
第二章 oracle8i数据库维护
1. 创建数据库
1.1 建库工具
对于oracle8i我们可以通过“Database Configuration Assistant”工具来创建新的数据库。无论在何操作系统平台下,都可用命令“DBAssist”来启动该工具。
1.2 初始化参数设置
初始化参数中只有db_block_size在建库后不可修改,其它均可修改,修改
可以通过直接改变$ORACLE_BASE/admin/
用户发出的SQL语句及PLSQL过程server进程分析后会将语句及执行方案存放于共享池中,当下一次server进程收到同样的语句时就不需对语句再做分
析,直接依照执行方案去执行。所以我们希望共享池足够大来装下我们所有已执行过的语句及他们的执行方案,省去了分析过程,缩短了响应时间。
共享池的大小是通过初始化参数shared_pool_size来设定的。Shared_pool_size大小在创建数据库时被指定,数据单位为字节数,建库之后我们同样可以修改这个参数。到底应设多大合适呢?可以依照以下估算公式:
估算公式:shared_pool_size=50%*60%*physical memory(字节) 1.2.2 db_block_size
db_block_size是数据文件读取的最小的I/O单元。它的大小选择对数据库性能有一定影响。
db_block_size 缺省为4K,8K最大为64K,这个参数一旦建库就无法再修改。
既然db_block_size的值有多个选择我们选什么值合适呢?
估算依据:对于内存资源有限,业务量不大(即业务数据表的行值不会太多)
的情况db_block_size应设为4k或8k
对于内存很充余,业务数据表的行值很多的情况db_block_size
应用设为12K或16K
1.2.3 db_block_buffers
db_block_buffers设定数据缓冲区中的数据块的数目。SQL语句执行时,Server进程首先会去数据缓冲区中找返回给用户的数据值。当缓冲区没有时通过DBWR进程将数据从数据文件中读取写入数据冲区再传给用户,这便增加了响应时间、影响了使用效率。这一值设多少合适呢?我们以以下公式来估算:
估算公式:db_block_buffers=40%*60%*physical memory(字节)/db_block_size 1.2.4 log_buffer
log_buffer设定日志缓冲区的大小。数据库操作生成的日志文件先存放在日志缓冲区中,达到log_buffer的1/3或检查点时再写入日志文件,频繁的写操
作会影响性能。建库默认的大小是32K,我们应将它设为:
log_buffer=3145728
log_checkpoint_interval (检查点间隔,单位为字节)= 20000 1.2.5 large_pool_size
当数据库设为共享服务模式时,部份排序公使用大池。这个值的大小我们应
设为:
large_pool_size=20971520 1.2.6 processes
processes参数用来设定能启动的最大进程数。一般我们将它的值设为200。
1.2.7 open_cursors
open_cursors 用于查询分配给用户进程的私有sql区,应用应及时关闭cursors来有效利用内存。我们的应用时常会出现“超出游标数”这样的错误,所以我们应将这一参数设大一些。
估算值:open_cursors=500~800
1.2.8 sort_area_size sort_area_retained_size
sort_area_size用于存放SQL语句中涉及到group by 等部份的临时数据。建库时缺省值为65536,我们应用把它设大一些为:
sort_area_size= 41943040
sort_area_retained_size= 10485760 1.2.9 共享服务模式(多线程服务)
在建库时我们应选择“共享服务模式”,“调度程序数量”设为5,“每个调度程序的最大连接数量”设为5,“调度程序的最大数量”设为10,“服务器进程数量”设为5,“最大服务器进程数量”设为10
2.管理表空间及数据文件
数据库创建完成后,我们需要利用DBA Studio -> ”存储管理”工具来为此数据库新创建一个数据表空间、一个索引表空间。 DBA Studio 的启动命令为:oemapp dbastudio,创建的工作我们也可以通过客户端的DBA STUDIO工具来做。
数据表空间及索引表空间创建时“存储”项应选择“本地管理”的区管理方式。
数据表空间及索引表空间所对应的数据文件应分别存放在不同的磁盘以避免I/O冲突的发生。需要定期察看文件的使用状况,当空间不够时及时扩充。
回滚表空间数据文件一般在800M ,临时表空间数据文件的大小一般为200-500M 。
3. 管理回滚段
建库过程中系统会自动创建6个回滚段,根据需要要新建一些表空间,配置参数应与已有的回滚段相同。多少个回滚段才合适呢?用你系统的最大并发用户数除以4 即是你的系统所需要的回滚段数。
4. 管理用户表
对于新建的NC数据用户,我们要确认该用户使用的默认数据表空间是第2节中讲到的新建的数据表空间,这样才能保存NC的表数据是物理存放在该表空间对应的数据文件中的。
当NC安装完成、所有的客户化表及业务表已建立后,我们要对这些表的存储做一些调整。调整的工作可以通过以下几步来做:
a. 通过Sql*PLUS以NC数据用户连接数据库 b. 输入:spool c:\\alt_table.txt
select ‘alter table ’||tname||’ pctfree 20 pctused 60 storage(pctincrease
0);’ from tab where tabtype=’TABLE’;
spool off
c. alt_table.txt文件生成后,我们来执行该文件:
@c:\\alt_table.txt
此文件执行成功后,所有的NC数据表的pctfree均被改为20%,pctused改为60%,pctincrease改为0%
5. 使用索引
NC数据表创建过程中,基于主键的唯一索引也会自动被创建。如果安装过程中没有给索引指定单独的索引表空间而是与表数据混杂在一起,下面我们就要来做将他们分离的工作:
a. 通过Sql*PLUS以NC数据用户连接数据库 b. 输入:spool c:\\alt_index.txt select
‘alter
index
’||index_name||’
rebuild
tablespace
pctfree 0 storage(pctincrease 0);’ from user_indexes;
spool off
注:红字部份由你第2节中所创建的索引表空间的名称来替代。 c. alt_index.txt文件生成后,我们来执行该文件:
@alt_index.txt
NC产品索引的建立并不完整,所以我们必须参照一定的依据为NC数据表字段创建新的索引。
依据一:对两个有关联关系的表建立单字段索引,如gl_voucher(凭证表)与gl_detail(凭证分录表)均有一字段pk_voucher,pk_voucher在gl_voucher表中是主键;pk_voucher在gl_detail表中具有外键约束于gl_voucher表的pk_voucher字段值。这两个表便叫做具有关联关系,gl_voucher为主表,gl_detail为子表。对于具有这种关联关系的表,我们需要在子表上对这个关联字段加一般索引。可以利用DBA Studio->’方案’工具来加这个索引,同样也可用命令来创建索引,命令参照如下:
create index I_pk_voucher on gl_detail(pk_voucher) tablespace pctfree 0 storage(pctincrease 0);
具体哪些表的哪些字节为子表的关联字段呢?我们可以通过一语句来查询