2005年01月20日

壹、好用網管工具-webmin的安裝

一、說明:web界面的網管工具,非常簡單、好用,很多的網管、設定都可以用它(webmin)完成。

二、下載網址:
1.webmin網站
http://www.webmin.com
2.中正FTP站
ftp://www.ccps.tcc.edu.tw/程式區/linux/webmin/webmin-1.080.tar.gz

三、安裝步驟:
1.下載檔案webmin-1.xxx.tar.gz到/usr/local路徑下。(目前最新版本1.80)

2.解壓縮
#cd /usr/local
#tar zxvf webmin-1.xxx.tar.gz
#cd webmin1-xxx

3.安裝
#./setup.sh

(底下為安裝時所看到的提示)

Config file directory [/etc/webmin]:直接按enter
Log file directory [/var/webmin]:直接按enter

Full path to perl (default /usr/bin/perl):直接按enter
Web server port (default 10000):9988用預設(port1000)直接按enter,若要改的話,請輸入port的值,再按enter。(建議修改比較安全)
Login name (default admin):root輸入管理者帳號。
Login password:輸入密碼。
Password again:再打一次。
The Perl SSLeay library is not installed. SSL not available.
Start Webmin at boot time (y/n): y開機是否啟動webmin

4.安裝完成路徑。
http://xxx.xxx.xxx.xxx:port


四、移除步驟:
1.執行底下指令
#cd /etc/webmin/
# ./uninstall.sh
Are you sure you want to uninstall Webmin? (y/n) :y
2.移除完成。



 

貳、利用NFS來作網路主機的資料備份
一、 說明:
由於學校有數部的網路主機,將設定檔、重要資料直接備份在本身的電腦上又有風險,例如遇到駭客、雷擊、硬碟損壞,所以架設NFS主機,分別將數台電腦的資料,定時tar到NFS主機上,以降低風險,。

二、學校環境:
目前學校有proxy server 1部、web server1部、mail server 1部、pc router 1部,我是在web server這部電腦上加裝1顆硬碟,然後再將NFS server裝在這部電腦上。

三、NFS server安裝、設定步驟:安裝在web server這部電腦上。(以我們學校為例)
1.先檢查是否安裝:指令如下
#rpm -qa | grep nfs
(若沒有安裝的話,請找到光碟中nfs套件安裝)

2.啟動NFS server:指令如下
#/etc/rc.d/init.d/nfs start

3.建立共用目錄:
#mkdir /backup/mail_back
#mkdir /backup/proxy_back
#mkdir /backup/router_back
(以上建立的資料夾,分別作為mail、proxy、router備份的資料夾)

4.進行共用目錄的匯出設定:(以webmin 1.07設定)
舉例說明:mail server的共用目錄的設定方法
a.登入webmin後,在點選networking、NFS Exports、Add a new export
b.在Create Export中的Directory to export選擇你要匯出的共用目錄,例如/backup/mail_back。
c.接著Export to…,選擇host,然後再輸入位址,例如163.17.97.x
d.在Trust remote users中,選擇Everyone

其它server的共用目錄設定同上述。

四BNFS Client設定步驟:(Client端的是mail、proxy、router這些機器)
舉例說明:mail server的設定
1.建立備份資料夾
#mkdir /mail_back

2.檢視NFS server的共用資源,指令
#showmount -e 163.17.97.x
應該會看到nfs server匯出的目錄。

3.掛載NFS server的匯出目錄,指令
#mount -t nfs 163.17.97.x:/backup/mail_back /mail_back

五、資料備份:(舉例說明:mail server的設定)
1.編輯mail_back.sh,指令
#vi /mail_back/mail_back.sh

#以下內容僅供參考,你可依照需要,增減你要備份的資料。
day=`date +%Y-%m-%d`
cp /etc/passwd /mail_back/passwd/passwd.”$day”
cp /etc/shadow /mail_back/shadow/shadow.”$day”
cp /etc/group /mail_back/group/group.”$day”
cp /etc/gshadow /mail_back/gshadow/gshadow.”$day”
tar -czf /mail_back/mail/mail.tar.gz /var/spool/mail
tar -czf /mail_back/home/home.tar.gz /home
tar -czf /mail_back/www/www.tar.gz /var/www
tar -czf /mail_back/mysql/mysql.”$day”.tar.gz /var/lib/mysql
tar -czf /mail_back/smb/smb.tar.gz /etc/samba

2.排入排程:(以webmin 1.07設定)
a.登入webmin,點選system、Scheduled Cron Jobs、Create a new scheduled cron job
b.在Edit Cron Job中,Execute cron job as請輸入root,Command請輸入/mail_back/mail_back.sh
c.設定When to execute(你要執行的時間)
d.最後作save的動作,你也可以執行一下(Run Now)看看有無問題。

六、建議:
為了再保險一點,建議將tar到NFS主機上的資料再定期copy出來,而這樣作可能有點麻煩,不過卻又多了一分的保障。

2005年01月17日

关于SGA设置的一点总结
作者:Biti_rainy

说明:
本总结不针对特例,仅对服务器只存在OS + ORACLE 为例,如果存在其他应用请酌情考虑。写这个也是因为近来这种重复性的问题发生的太多所导致的。

首先不要迷信STSOCP SG以及某些专家给出的任何建议、内存百分比的说法。基本掌握的原则是:

l          data buffer 通常可以尽可能的大

l          shared_pool_size 要适度

l          log_buffer 通常大到几百K1M就差不多了

设置之前,首先要明确2个问题
1
:除去OS和一些其他开销,能给ORACLE使用的内存有多大?
2
Oracle64 bit 还是 32 bit 32bit 通常 SGA 1.7G 的限制(某些OS有特定处理或者WINDOWS上有特定设定可以支持到2G以上甚至达到3.7G,本人无这方面经验)

下面是我的Windows2000下的Oracle :

SQL> select * from v$version;

BANNER
—————————————————————-
Oracle8i Enterprise Edition Release 8.1.7.0.0 – Production
PL/SQL Release 8.1.7.0.0 – Production
CORE 8.1.7.0.0 Production
TNS for 32-bit Windows: Version 8.1.7.0.0 – Production
NLSRTL Version 3.4.1.0.0 – Production

SQL>

windows
上存在32bit的限制,如AIXHP-UX 等有明确的64 bit OS ORACLE的版本,32 bit Oracle可以装在64 bit OS 上,64 bit Oracle不能装在32 bit OS上。

不管Oracle32 bit 还是 64 bit 的,假定应用存在没有很好的使用bind var 的情况,也不能设置 shared_pool_size 过大,通常应该控制在100M--200M,除非是 ORACLE ERP 一类的使用了很多存储过程函数、包 ,这样的很大的系统,可以考虑增大shared_pool_size,但是如果超过500M可能是危险的,达到1G几乎就会造成CPU的严重负担,系统甚至瘫痪。所以shared_pool_size 如果超过200M还命中率不高,那么应该从应用上找原因而不是一味的增加内存,shared_pool_size 过大主要增加了管理负担和latch 的开销。

log_buffer
128K — 1M 之间通常问题不大,不应该太大。

large_pool_size
:如果不设置MTS,通常在 RMAN OPQ 会使用到,但是在10M --50M 应该差不多了。假如设置 MTS,则由于 UGA 放到large_pool_size 的缘故,这个时候依据 session最大数量和 sort_ares_size 等参数设置,必须增大large_pool_size 的设置,可以考虑为 session * (sort_area_size + 2M)。这里要提醒一点,不是必须使用MTS,我们都不主张使用MTS,尤其同时在线用户数小于500的情况下。

java_pool_size :
若不使用java,给30M通常就够了。

data buffer
:在做了前面的设置后,凡可以提供给Oracle的内存,都应该给data buffer = (db_block_size * db_block_buffers) 9i 中可以是 db_cache_size

还有2个重要参数我们需要注意:

sort_area_size
hash_area_size
这两个参数在非MTS下都是属于PGA ,不属于SGA。它是为每个session单独分配的,在我们的服务器上除了OS + SGA,一定要考虑这两部分。

(****) : OS
使用内存+ SGA + session*(sort_area_size + hash_area_size + 2M) < 总物理RAM 为好

这样归结过来,假定Oracle 32 bit ,服务器RAM大于2G ,注意你的PGA的情况,则建议:

shared_pool_size + data buffer +large_pool_size + java_pool_size < 1.6G

再具体化,注意满足上面(****) 的原则的基础上可以参考如下设置:
如果512M RAM
建议 shared_pool_size = 50M, data buffer = 200M

如果1G RAM
shared_pool_size = 100M , data buffer = 500M


如果2G RAM
shared_pool_size = 150M ,data buffer = 1.2G


物理内存再大已经跟参数没有关系了

举例来说:
假定64 bit ORACLE

内存4G
shared_pool_size = 200M , data buffer = 2.5G

内存8G
shared_pool_size = 200M , data buffer = 5G

内存 12G
shared_pool_size = 300M , data buffer = 8G

总结

以上仅为参考值,建议在设置参数的同时,init中使用 lock_sga ,在不同的平台上可能有不同的方式,使得SGA锁定在物理内存中而不被放入 SWAP 中,这样对效率有好处。(关于内存的设置,要再进行细致的调整,起的作用不大,但可根据statspack信息和v$system_event,v$sysstat,v$sesstat,v$latch 等视图信息来考虑微调。)


编辑注: 关于此贴的详细情况请参考论坛的帖子:
http://www.itpub.net/showthread.php?s=&threadid=109787
你可以找到Biti_rainy,Chao_ping,Coolyl等对此话题的更多讨论。

 

(END)

关于SGA设置的一点总结
作者:Biti_rainy

说明:
本总结不针对特例,仅对服务器只存在OS + ORACLE 为例,如果存在其他应用请酌情考虑。写这个也是因为近来这种重复性的问题发生的太多所导致的。

首先不要迷信STSOCP SG以及某些专家给出的任何建议、内存百分比的说法。基本掌握的原则是:

l          data buffer 通常可以尽可能的大

l          shared_pool_size 要适度

l          log_buffer 通常大到几百K1M就差不多了

设置之前,首先要明确2个问题
1
:除去OS和一些其他开销,能给ORACLE使用的内存有多大?
2
Oracle64 bit 还是 32 bit 32bit 通常 SGA 1.7G 的限制(某些OS有特定处理或者WINDOWS上有特定设定可以支持到2G以上甚至达到3.7G,本人无这方面经验)

下面是我的Windows2000下的Oracle :

SQL> select * from v$version;

BANNER
—————————————————————-
Oracle8i Enterprise Edition Release 8.1.7.0.0 – Production
PL/SQL Release 8.1.7.0.0 – Production
CORE 8.1.7.0.0 Production
TNS for 32-bit Windows: Version 8.1.7.0.0 – Production
NLSRTL Version 3.4.1.0.0 – Production

SQL>

windows
上存在32bit的限制,如AIXHP-UX 等有明确的64 bit OS ORACLE的版本,32 bit Oracle可以装在64 bit OS 上,64 bit Oracle不能装在32 bit OS上。

不管Oracle32 bit 还是 64 bit 的,假定应用存在没有很好的使用bind var 的情况,也不能设置 shared_pool_size 过大,通常应该控制在100M--200M,除非是 ORACLE ERP 一类的使用了很多存储过程函数、包 ,这样的很大的系统,可以考虑增大shared_pool_size,但是如果超过500M可能是危险的,达到1G几乎就会造成CPU的严重负担,系统甚至瘫痪。所以shared_pool_size 如果超过200M还命中率不高,那么应该从应用上找原因而不是一味的增加内存,shared_pool_size 过大主要增加了管理负担和latch 的开销。

log_buffer
128K — 1M 之间通常问题不大,不应该太大。

large_pool_size
:如果不设置MTS,通常在 RMAN OPQ 会使用到,但是在10M --50M 应该差不多了。假如设置 MTS,则由于 UGA 放到large_pool_size 的缘故,这个时候依据 session最大数量和 sort_ares_size 等参数设置,必须增大large_pool_size 的设置,可以考虑为 session * (sort_area_size + 2M)。这里要提醒一点,不是必须使用MTS,我们都不主张使用MTS,尤其同时在线用户数小于500的情况下。

java_pool_size :
若不使用java,给30M通常就够了。

data buffer
:在做了前面的设置后,凡可以提供给Oracle的内存,都应该给data buffer = (db_block_size * db_block_buffers) 9i 中可以是 db_cache_size

还有2个重要参数我们需要注意:

sort_area_size
hash_area_size
这两个参数在非MTS下都是属于PGA ,不属于SGA。它是为每个session单独分配的,在我们的服务器上除了OS + SGA,一定要考虑这两部分。

(****) : OS
使用内存+ SGA + session*(sort_area_size + hash_area_size + 2M) < 总物理RAM 为好

这样归结过来,假定Oracle 32 bit ,服务器RAM大于2G ,注意你的PGA的情况,则建议:

shared_pool_size + data buffer +large_pool_size + java_pool_size < 1.6G

再具体化,注意满足上面(****) 的原则的基础上可以参考如下设置:
如果512M RAM
建议 shared_pool_size = 50M, data buffer = 200M

如果1G RAM
shared_pool_size = 100M , data buffer = 500M


如果2G RAM
shared_pool_size = 150M ,data buffer = 1.2G


物理内存再大已经跟参数没有关系了

举例来说:
假定64 bit ORACLE

内存4G
shared_pool_size = 200M , data buffer = 2.5G

内存8G
shared_pool_size = 200M , data buffer = 5G

内存 12G
shared_pool_size = 300M , data buffer = 8G

总结

以上仅为参考值,建议在设置参数的同时,init中使用 lock_sga ,在不同的平台上可能有不同的方式,使得SGA锁定在物理内存中而不被放入 SWAP 中,这样对效率有好处。(关于内存的设置,要再进行细致的调整,起的作用不大,但可根据statspack信息和v$system_event,v$sysstat,v$sesstat,v$latch 等视图信息来考虑微调。)


编辑注: 关于此贴的详细情况请参考论坛的帖子:
http://www.itpub.net/showthread.php?s=&threadid=109787
你可以找到Biti_rainy,Chao_ping,Coolyl等对此话题的更多讨论。

 

(END)

2005年01月06日

物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。

       物化视图可以查询表,视图和其它的物化视图。

       通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。

       对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。

       对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图。

本篇我们将会看到怎样创建物化视图并且讨论它的刷新选项。

       在复制环境下,创建的物化视图通常情况下主键,rowid,和子查询视图。

1.主键物化视图:

              下面的语法在远程数据库表emp上创建主键物化视图

        SQL> CREATE MATERIALIZED VIEW mv_emp_pk
             REFRESH FAST START WITH SYSDATE 
            NEXT  SYSDATE + 1/48
            WITH PRIMARY KEY 
            AS SELECT * FROM emp@remote_db;
            Materialized view created.

              注意:当用FAST选项创建物化视图,必须创建基于主表的视图日志,如下:

            SQL> CREATE MATERIALIZED VIEW LOG ON emp;
            Materialized view log created.

2.Rowid物化视图

              下面的语法在远程数据库表emp上创建Rowid物化视图

      SQL> CREATE MATERIALIZED VIEW mv_emp_rowid 
            REFRESH WITH ROWID 
             AS SELECT * FROM emp@remote_db; 
            Materialized view log created.

3.子查询物化视图

              下面的语法在远程数据库表emp上创建基于empdept表的子查询物化视图

            SQL> CREATE MATERIALIZED VIEW  mv_empdept
            AS SELECT * FROM emp@remote_db e
            WHERE EXISTS
             (SELECT * FROM dept@remote_db d
             WHERE e.dept_no = d.dept_no)
      Materialized view log created.

       REFRESH 子句

                    [refresh [fast|complete|force]
            [on demand | commit]
            [start with date] [next date]
            [with {primary key|rowid}]]
 

       Refresh选项说明:

a.      oracle用刷新方法在物化视图中刷新数据.

b.      是基于主键还是基于rowid的物化视图

c.       物化视图的刷新时间和间隔刷新时间

 

Refresh方法-FAST子句

       增量刷新用物化视图日志(参照上面所述)来发送主表已经修改的数据行到物化视图中.如果指定REFRESH FAST子句,那么应该对主表创建物化视图日志

                    SQL> CREATE MATERIALIZED VIEW LOG ON emp;

Materialized view log created.

       对于增量刷新选项,如果在子查询中存在分析函数,则物化视图不起作用。

 

Refresh方法- COMPLETE子句

       完全刷新重新生成整个视图,如果请求完全刷新,oracle会完成       完全刷新即使增量刷新可用。

 

Refresh Method – FORCE 子句

       当指定FORCE子句,如果增量刷新可用Oracle将完成增量刷新,否则将完成完全刷新,如果不指定刷新方法(FAST, COMPLETE, or FORCE),Force选项是默认选项

 

主键和ROWD子句

       WITH PRIMARY KEY选项生成主键物化视图,也就是说物化视图是基于主表的主键,而不是ROWID(对应于ROWID子句). PRIMARY KEY是默认选项,为了生成PRIMARY KEY子句,应该在主表上定义主键,否则应该用基于ROWID的物化视图.

       主键物化视图允许识别物化视图主表而不影响物化视图增量刷新的可用性。

       Rowid物化视图只有一个单一的主表,不能包括下面任何一项:

n         Distinct 或者聚合函数.

n         Group by,子查询,连接和SET操作

 

刷新时间      

       START WITH子句通知数据库完成从主表到本地表第一次复制的时间,应该及时估计下一次运行的时间点, NEXT 子句说明了刷新的间隔时间.

            SQL> CREATE MATERIALIZED VIEW mv_emp_pk
                     REFRESH FAST 
                  START WITH SYSDATE 
                  NEXT  SYSDATE + 2
                  WITH PRIMARY KEY 
                  AS SELECT * FROM emp@remote_db;
                  Materialized view created.

在上面的例子中,物化视图数据的第一个副本在创建时生成,以后每两天刷新一次.

 

总结

物化视图提供了可伸缩的基于主键或ROWID的视图,指定了刷新方法和自动刷新的时间。