自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(0)
  • 资源 (17)
  • 收藏
  • 关注

空空如也

全国初中高中小学学校名单2020.xlsx

全国初中高中小学学校名单2020年,包含省/直辖市编码名称、地市编码及名称、区县编码及名称、学校编码及名称,24万条最全数据,数据来源学生体质健康网

2020-11-30

2018最新带商城版疯狂加粉源码 微信分销平台系统 微信三级分销系统

2018微信三级分销系统 微信分销平台系统 微信三级分销系统 微信分销系统企业版 微盟公众号微信分销系统 微信分销系统商业版完全免费下载 亿推推微信分销系统商业版完全免费下载 微信分销系统 微信分销平台系统 java微信分销系统源代码 PHP微信分销平台系统 最新微信三级分销系统 微信商城分佣系统|微信CPS分销|微信派单接单平台|微信公众号盈利平台|微信3级返佣 微信速分销会员分销系统 2016最新带商城版微信三级分销系统源码 微信分销系统,拿佣金提成 ecshop+ectouch+分销模式+微信支付V3修复 ectouche,pc+微信+分销 多用户微信分销 微信分销商城源码 微信三级分销源码(JAVA) 微信商城分佣系统 bingsns微信分销系统 微信多供销版本商城 微小店 微商城 微活动 微支付 微提现 渠道管理 针对不同等级、不同渠道、不同拿货模式经销商可以自定义不同等级优惠折扣政策 商品、价格体系 建立渠道价格体系,实现渠道区域价、渠道等级价等价格管理;商品可根据渠道政策分区域销售 渠道库存 实现渠道采购订单管理以及销售订单管理,从而了解当前渠道库存,库存积压商品及时处理,提高库存周转率 渠道订单 线上管理渠道订单,可实现一笔订单分批发货;系统统计渠道订单量、产品销量,可根据渠道采购量,给予授信

2018-04-03

加快计算机启动速度的15式、加快开机速度,加载个人设置慢

加快计算机启动速度的“十五式”(加快开机速度,加载个人设置慢).txt

2011-12-09

SVN配置管理培训.ppt

SVN配置管理培训.ppt

2011-12-09

开启mysql远程连接功能.txt

开启mysql远程连接功能.tx

2011-12-09

ORACLE中的游标.ppt

ORACLE中的游标.ppt

2011-12-09

最全的oracle常用命令大全.txt

ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit 启动oracle9i数据库命令: $ sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> connect / as sysdba Connected to an idle instance. SQL> startup^C SQL> startup ORACLE instance started. 2、在双机环境下 要想启动或关闭ORACLE系统必须首先切换到root用户,如下 su - root a、启动ORACLE系统 hareg -y oracle b、关闭ORACLE系统 hareg -n oracle Oracle数据库有哪几种启动方式 说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行: 数据库日志归档、 数据库介质恢复、 使数据文件联机或脱机, 重新定位数据文件、重做日志文件。 执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置, 但此时不对数据文件和日志文件进行校验检查。 3、startup open dbname 先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件, 这种方式下可访问数据库中的数据。 4、startup,等于以下三个命令 startup nomount alter database mount alter database open 5、startup restrict 约束方式启动 这种方式能够启动数据库,但只允许具有一定特权的用户访问 非特权用户访问时,会出现以下提示: ERROR: ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用 6、startup force 强制启动方式 当不能关闭数据库时,可以用startup force来完成数据库的关闭 先关闭数据库,再执行正常启动数据库命令 7、startup pfile=参数文件名 带初始化参数文件的启动方式 先读取参数文件,再按参数文件中的设置启动数据库 例:startup pfile=E:Oracleadminoradbpfileinit.ora 8、startup EXCLUSIVE 二、用户如何有效地利用数据字典  ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。 数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。 我们不能手工修改数据字典里的信息。   很多时候,一般的ORACLE用户不知道如何有效地利用它。   dictionary   全部数据字典表的名称和解释,它有一个同义词dict dict_column   全部数据字典表里字段名称和解释 如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句: SQL>select * from dictionary where instr(comments,'index')>0; 如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句: SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES'; 依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。 下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_role_privs; 查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 2、表 查看用户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper('&table_name'); 查看某表的大小 SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name'); 查看放在ORACLE的内存区里的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; 3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper('&index_name'); 查看索引的大小 SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name'); 4、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences; 5、视图 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的大小 SQL>select text from user_views where view_name=upper('&view_name'); 6、同义词 查看同义词的名称 SQL>select * from user_synonyms; 7、约束条件 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name'); SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position; 8、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE'; 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper('&plsql_name'); 三、查看数据库的SQL 1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 2、查看表空间物理文件的名称及大小 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; 3、查看回滚段名称及大小 select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+) order by segment_name ; 4、查看控制文件 select name from v$controlfile; 5、查看日志文件 select member from v$logfile; 6、查看表空间的使用情况 select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name; SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME; 7、查看数据库库对象 select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status; 8、查看数据库的版本 Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle'; 9、查看数据库的创建日期和归档方式 Select Created, Log_Mode, Log_Mode From V$Database; 四、ORACLE用户连接的管理 用系统管理员,查看当前数据库有几个用户连接: SQL> select username,sid,serial# from v$session; 如果要停某个连接用 SQL> alter system kill session 'sid,serial#'; 如果这命令不行,找它UNIX的进程数 SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr; 说明:21是某个连接的sid数 然后用 kill 命令杀此进程号。 五、SQL*PLUS使用 a、近入SQL*Plus $sqlplus 用户名/密码 退出SQL*Plus SQL>exit b、在sqlplus下得到帮助信息 列出全部SQL命令和SQL*Plus命令 SQL>help 列出某个特定的命令的信息 SQL>help 命令名 c、显示表结构命令DESCRIBE SQL>DESC 表名 d、SQL*Plus中的编辑命令 显示SQL缓冲区命令 SQL>L 修改SQL命令 首先要将待改正行变为当前行 SQL>n 用CHANGE命令修改内容 SQL>c/旧/新 重新确认是否已正确 SQL>L 使用INPUT命令可以在SQL缓冲区中增加一行或多行 SQL>i SQL>输入内容 e、调用外部系统编辑器 SQL>edit 文件名 可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_EDITOR=vi f、运行命令文件 SQL>START test SQL>@test 常用SQL*Plus语句 a、表的创建、修改、删除 创建表的命令格式如下: create table 表名 (列说明列表); 为基表增加新列命令如下: ALTER TABLE 表名 ADD (列说明列表) 例:为test表增加一列Age,用来存放年龄 sql>alter table test add (Age number(3)); 修改基表列定义命令如下: ALTER TABLE 表名 MODIFY (列名 数据类型) 例:将test表中的Count列宽度加长为10个字符 sql>alter atble test modify (County char(10)); b、将一张表删除语句的格式如下: DORP TABLE 表名; 例:表删除将同时删除表的数据和表的定义 sql>drop table test c、表空间的创建、删除 六、ORACLE逻辑备份的SH文件 完全备份的SH文件:exp_comp.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp" 累计备份的SH文件:exp_cumu.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=cumulative file=/oracle/export/db_cumu$rq.dmp" 增量备份的SH文件: exp_incr.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=incremental file=/oracle/export/db_incr$rq.dmp" root用户crontab文件 /var/spool/cron/crontabs/root增加以下内容 0 2 1 * * /oracle/exp_comp.sh 30 2 * * 0-5 /oracle/exp_incr.sh 45 2 * * 6 /oracle/exp_cumu.sh 当然这个时间表可以根据不同的需求来改变的,这只是一个例子。 七、ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验. 日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒 或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’) TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC. 年-月-日 小时:分钟:秒 的格式YYYY-MM-DD HH24:MI:SS INSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型, 方法借用ORACLE里自带的DBMS_LOB程序包. INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号 CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL 2.DELETE (删除数据表里记录的语句) DELETE FROM表名 WHERE 条件; 注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused. 如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间 TRUNCATE TABLE 表名; 此操作不可回退. 3.UPDATE (修改数据表里记录的语句) UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件; 如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验; 值N超过定义的长度会出错, 最好在插入前进行长度校验.. 注意事项: A. 以上SQL语句对表都加上了行级锁, 确认完成后, 必须加上事物处理结束的命令 COMMIT 才能正式生效, 否则改变不一定写入数据库里. 如果想撤回这些操作, 可以用命令 ROLLBACK 复原. B. 在运行INSERT, DELETE 和 UPDATE 语句前最好估算一下可能操作的记录范围, 应该把它限定在较小 (一万条记录) 范围内,. 否则ORACLE处理这个事物用到很大的回退段. 程序响应慢甚至失去响应. 如果记录数上十万以上这些操作, 可以把这些SQL语句分段分次完成, 其间加上COMMIT 确认事物处理. 二.数据定义 (DDL) 部分 1.CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等) ORACLE常用的字段类型有 CHAR 固定长度的字符串 VARCHAR2 可变长度的字符串 NUMBER(M,N) 数字型M是位数总长度, N是小数的长度 DATE 日期类型 创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面 创建表时可以用中文的字段名, 但最好还是用英文的字段名 创建表时可以给字段加上默认值, 例如 DEFAULT SYSDATE 这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间 创建表时可以给字段加上约束条件 例如 不允许重复 UNIQUE, 关键字 PRIMARY KEY 2.ALTER (改变表, 索引, 视图等) 改变表的名称 ALTER TABLE 表名1 TO 表名2; 在表的后面增加一个字段 ALTER TABLE表名 ADD 字段名 字段名描述; 修改表里字段的定义描述 ALTER TABLE表名 MODIFY字段名 字段名描述; 给表里的字段加上约束条件 ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名); ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段名); 把表放在或取出数据库的内存区 ALTER TABLE 表名 CACHE; ALTER TABLE 表名 NOCACHE; 3.DROP (删除表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等) 删除表和它所有的约束条件 DROP TABLE 表名 CASCADE CONSTRAINTS; 4.TRUNCATE (清空表里的所有记录, 保留表的结构) TRUNCATE 表名; 三.查询语句 (SELECT) 部分 SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 条件; 字段名可以带入函数 例如: COUNT(*), MIN(字段名), MAX(字段名), AVG(字段名), DISTINCT(字段名), TO_CHAR(DATE字段名,'YYYY-MM-DD HH24:MI:SS') NVL(EXPR1, EXPR2)函数 解释: IF EXPR1=NULL RETURN EXPR2 ELSE RETURN EXPR1 DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数 解释: IF AA=V1 THEN RETURN R1 IF AA=V2 THEN RETURN R2 ..… ELSE RETURN NULL LPAD(char1,n,char2)函数 解释: 字符char1按制定的位数n显示,不足的位数用char2字符串替换左边的空位 字段名之间可以进行算术运算 例如: (字段名1*字段名1)/3 查询语句可以嵌套 例如: SELECT …… FROM (SELECT …… FROM表名1, [表名2, ……] WHERE 条件) WHERE 条件2; 两个查询语句的结果可以做集合操作 例如: 并集UNION(去掉重复记录), 并集UNION ALL(不去掉重复记录), 差集MINUS, 交集INTERSECT 分组查询 SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] GROUP BY字段名1 [HAVING 条件] ; 两个以上表之间的连接查询 SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 表名1.字段名 = 表名2. 字段名 [ AND ……] ; SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 表名1.字段名 = 表名2. 字段名(+) [ AND ……] ; 有(+)号的字段位置自动补空值 查询结果集的排序操作, 默认的排序是升序ASC, 降序是DESC SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] ORDER BY字段名1, 字段名2 DESC; 字符串模糊比较的方法 INSTR(字段名, ‘字符串’)>0 字段名 LIKE ‘字符串%’ [‘%字符串%’] 每个表都有一个隐含的字段ROWID, 它标记着记录的唯一性. 四.ORACLE里常用的数据对象 (SCHEMA) 1.索引 (INDEX) CREATE INDEX 索引名ON 表名 ( 字段1, [字段2, ……] ); ALTER INDEX 索引名 REBUILD; 一个表的索引最好不要超过三个 (特殊的大表除外), 最好用单字段索引, 结合SQL语句的分析执行情况, 也可以建立多字段的组合索引和基于函数的索引 ORACLE8.1.7字符串可以索引的最大长度为1578 单字节 ORACLE8.0.6字符串可以索引的最大长度为758 单字节 2.视图 (VIEW) CREATE VIEW 视图名AS SELECT …. FROM …..; ALTER VIEW视图名 COMPILE; 视图仅是一个SQL查询语句, 它可以把表之间复杂的关系简洁化. 3.同义词 (SYNONMY) CREATE SYNONYM同义词名FOR 表名; CREATE SYNONYM同义词名FOR 表名@数据库链接名; 4.数据库链接 (DATABASE LINK) CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘数据库连接字符串’; 数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义. 数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样 数据库全局名称可以用以下命令查出 SELECT * FROM GLOBAL_NAME; 查询远端数据库里的表 SELECT …… FROM 表名@数据库链接名; 五.权限管理 (DCL) 语句 1.GRANT 赋于权限 常用的系统权限集合有以下三个: CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理) 常用的数据对象权限有以下五个: ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名, DELETE ON 数据对象名, INSERT ON 数据对象名, ALTER ON 数据对象名 GRANT CONNECT, RESOURCE TO 用户名; GRANT SELECT ON 表名 TO 用户名; GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2; 2.REVOKE 回收权限 REVOKE CONNECT, RESOURCE FROM 用户名; REVOKE SELECT ON 表名 FROM 用户名; REVOKE SELECT, INSERT, DELETE ON表名 FROM 用户名1, 用户名2; 查询数据库中第63号错误: select orgaddr,destaddr from sm_histable0116 where error_code='63'; 查询数据库中开户用户最大提交和最大下发数: select MSISDN,TCOS,OCOS from ms_usertable; 查询数据库中各种错误代码的总和: select error_code,count(*) from sm_histable0513 group by error_code order by error_code; 查询报表数据库中话单统计种类查询。 select sum(Successcount) from tbl_MiddleMt0411 where ServiceType2=111 select sum(successcount),servicetype from tbl_middlemt0411 group by servicetype 原文地址:http://www.cnoug.org/viewthread.php?tid=60293 //创建一个控制文件命令到跟踪文件 alter database backup controlfile to trace; //增加一个新的日志文件组的语句 connect internal as sysdba alter database add logfile group 4 (’/db01/oracle/CC1/log_1c.dbf’, ’/db02/oracle/CC1/log_2c.dbf’) size 5M; alter database add logfile member ’/db03/oracle/CC1/log_3c.dbf’ to group 4; //在Server Manager上MOUNT并打开一个数据库: connect internal as sysdba startup mount ORA1 exclusive; alter database open; //生成数据字典 @catalog @catproc //在init.ora 中备份数据库的位置 log_archive_dest_1 = ’/db00/arch’ log_archive_dest_state_1 = enable log_archive_dest_2 = "service=stby.world mandatory reopen=60" log_archive_dest_state_2 = enable //对用户的表空间的指定和管理相关的语句 create user USERNAME identified by PASSWORD default tablespace TABLESPACE_NAME; alter user USERNAME default tablespace TABLESPACE_NAME; alter user SYSTEM quota 0 on SYSTEM; alter user SYSTEM quota 50M on TOOLS; create user USERNAME identified by PASSWORD default tablespace DATA temporary tablespace TEMP; alter user USERNAME temporary tablespace TEMP; //重新指定一个数据文件的大小 : alter database datafile ’/db05/oracle/CC1/data01.dbf’ resize 200M; //创建一个自动扩展的数据文件: create tablespace DATA datafile ’/db05/oracle/CC1/data01.dbf’ size 200M autoextend ON next 10M maxsize 250M; //在表空间上增加一个自动扩展的数据文件: alter tablespace DATA add datafile ’/db05/oracle/CC1/data02.dbf’ size 50M autoextend ON maxsize 300M; //修改参数: alter database datafile ’/db05/oracle/CC1/data01.dbf’ autoextend ON maxsize 300M; //在数据文件移动期间重新命名: alter database rename file ’/db01/oracle/CC1/data01.dbf’ to ’/db02/oracle/CC1/data01.dbf’; alter tablespace DATA rename datafile ’/db01/oracle/CC1/data01.dbf’ to ’/db02/oracle/CC1/data01.dbf’; alter database rename file ’/db05/oracle/CC1/redo01CC1.dbf’ to ’/db02/oracle/CC1/redo01CC1.dbf’; alter database datafile ’/db05/oracle/CC1/data01.dbf’ resize 80M; //创建和使用角色: create role APPLICATION_USER; grant CREATE SESSION to APPLICATION_USER; grant APPLICATION_USER to username; //回滚段的管理 create rollback segment SEGMENT_NAME tablespace RBS; alter rollback segment SEGMENT_NAME offline; drop rollback segment SEGMENT_NAME; alter rollback segment SEGMENT_NAME online; //回滚段上指定事务 commit; set transaction use rollback segment ROLL_BATCH; insert into TABLE_NAME select * from DATA_LOAD_TABLE; commit; //查询回滚段的 大小和优化参数 select * from DBA_SEGMENTS where Segment_Type = ’ROLLBACK’; select N.Name, /* rollback segment name */ S.OptSize /* rollback segment OPTIMAL size */ from V$ROLLNAME N, V$ROLLSTAT S where N.USN=S.USN; //回收回滚段 alter rollback segment R1 shrink to 15M; alter rollback segment R1 shrink; //例子 set transaction use rollback segment SEGMENT_NAME alter tablespace RBS default storage (initial 125K next 125K minextents 18 maxextents 249) create rollback segment R4 tablespace RBS storage (optimal 2250K); alter rollback segment R4 online; select Sessions_Highwater from V$LICENSE; grant select on EMPLOYEE to PUBLIC; //用户和角色 create role ACCOUNT_CREATOR; grant CREATE SESSION, CREATE USER, ALTER USER to ACCOUNT_CREATOR; alter user THUMPER default role NONE; alter user THUMPER default role CONNECT; alter user THUMPER default role all except ACCOUNT_CREATOR; alter profile DEFAULT limit idle_time 60; create profile LIMITED_PROFILE limit FAILED_LOGIN_ATTEMPTS 5; create user JANE identified by EYRE profile LIMITED_PROFILE; grant CREATE SESSION to JANE; alter user JANE account unlock; alter user JANE account lock; alter profile LIMITED_PROFILE limit PASSWORD_LIFE_TIME 30; alter user jane password expire; //创建操作系统用户 REM Creating OPS$ accounts create user OPS$FARMER identified by SOME_PASSWORD default tablespace USERS temporary tablespace TEMP; REM Using identified externally create user OPS$FARMER identified externally default tablespace USERS temporary tablespace TEMP; //执行ORAPWD ORAPWD FILE=filename PASSWORD=password ENTRIES=max_users create role APPLICATION_USER; grant CREATE SESSION to APPLICATION_USER; create role DATA_ENTRY_CLERK; grant select, insert on THUMPER.EMPLOYEE to DATA_ENTRY_CLERK; grant select, insert on THUMPER.TIME_CARDS to DATA_ENTRY_CLERK; grant select, insert on THUMPER.DEPARTMENT to DATA_ENTRY_CLERK; grant APPLICATION_USER to DATA_ENTRY_CLERK; grant DATA_ENTRY_CLERK to MCGREGOR; grant DATA_ENTRY_CLERK to BPOTTER with admin option; //设置角色 set role DATA_ENTRY_CLERK; set role NONE; //回收权利: revoke delete on EMPLOYEE from PETER; revoke all on EMPLOYEE from MCGREGOR; //回收角色: revoke ACCOUNT_CREATOR from HELPDESK; drop user USERNAME cascade; grant SELECT on EMPLOYEE to MCGREGOR with grant option; grant SELECT on THUMPER.EMPLOYEE to BPOTTER with grant option; revoke SELECT on EMPLOYEE from MCGREGOR; create user MCGREGOR identified by VALUES ’1A2DD3CCEE354DFA’; alter user OPS$FARMER identified by VALUES ’no way’; //备份与恢复 使用 export 程序 exp system/manager file=expdat.dmp compress=Y owner=(HR,THUMPER) exp system/manager file=hr.dmp owner=HR indexes=Y compress=Y imp system/manager file=hr.dmp full=Y buffer=64000 commit=Y //备份表 exp system/manager FILE=expdat.dmp TABLES=(Thumper.SALES) //备份分区 exp system/manager FILE=expdat.dmp TABLES=(Thumper.SALES:Part1) //输入例子 imp system/manager file=expdat.dmp imp system/manager file=expdat.dmp buffer=64000 commit=Y exp system/manager file=thumper.dat owner=thumper grants=N indexes=Y compress=Y rows=Y imp system/manager file=thumper.dat FROMUSER=thumper TOUSER=flower rows=Y indexes=Y imp system/manager file=expdat.dmp full=Y commit=Y buffer=64000 imp system/manager file=expdat.dmp ignore=N rows=N commit=Y buffer=64000 //使用操作系统备份命令 REM TAR examples tar -cvf /dev/rmt/0hc /db0[1-9]/oracle/CC1 tar -rvf /dev/rmt/0hc /orasw/app/oracle/CC1/pfile/initcc1.ora tar -rvf /dev/rmt/0hc /db0[1-9]/oracle/CC1 /orasw/app/oracle/CC1/pfile/initcc1.ora //离线备份的shell脚本 ORACLE_SID=cc1; export ORACLE_SID ORAENV_ASK=NO; export ORAENV_ASK . oraenv svrmgrl <<EOF1 connect internal as sysdba shutdown immediate; exit EOF1 insert backup commands like the "tar" commands here svrmgrl <<EOF2 connect internal as sysdba startup EOF2 //在Server Manager上设置为archivelog mode: connect internal as sysdba startup mount cc1; alter database archivelog; archive log start; alter database open; //在Server Manager上设置为archivelog mode: connect internal as sysdba startup mount cc1; alter database noarchivelog; alter database open; select Name, Value from V$PARAMETER where Name like ’log_archive%’; //联机备份的脚本 # # Sample Hot Backup Script for a UNIX File System database # # Set up environment variables: ORACLE_SID=cc1; export ORACLE_SID ORAENV_ASK=NO; export ORAENV_ASK . oraenv svrmgrl <<EOFarch1 connect internal as sysdba REM REM 备份 SYSTEM tablespace REM alter tablespace SYSTEM begin backup; !tar -cvf /dev/rmt/0hc /db01/oracle/CC1/sys01.dbf alter tablespace SYSTEM end backup; REM REM The SYSTEM tablespace has now been written to a REM tar saveset on the tape device /dev/rmt/0hc. The REM rest of the tars must use the "-rvf" clause to append REM to that saveset. REM REM 备份 RBS tablespace REM alter tablespace RBS begin backup; !tar -rvf /dev/rmt/0hc /db02/oracle/CC1/rbs01.dbf alter tablespace RBS end backup; REM REM 备份 DATA tablespace REM For the purposes of this example, this tablespace REM will contain two files, data01.dbf and data02.dbf. REM The * wildcard will be used in the filename. REM alter tablespace DATA begin backup; !tar -rvf /dev/rmt/0hc /db03/oracle/CC1/data0*.dbf alter tablespace DATA end backup; REM REM 备份 INDEXES tablespace REM alter tablespace INDEXES begin backup; !tar -rvf /dev/rmt/0hc /db04/oracle/CC1/indexes01.dbf alter tablespace INDEXES end backup; REM REM 备份 TEMP tablespace REM alter tablespace TEMP begin backup; !tar -rvf /dev/rmt/0hc /db05/oracle/CC1/temp01.dbf alter tablespace TEMP end backup; REM REM Follow the same pattern to back up the rest REM of the tablespaces. REM REM REM Step 2. 备份归档日志文件. archive log stop REM REM Exit Server Manager, using the indicator set earlier. exit EOFarch1 # # Record which files are in the destination directory. # Do this by setting an environment variable that is # equal to the directory listing for the destination # directory. # For this example, the log_archive_dest is # /db01/oracle/arch/CC1. # FILES=`ls /db01/oracle/arch/CC1/arch*.dbf`; export FILES # # Now go back into Server Manager and restart the # archiving process. Set an indicator (called EOFarch2 # in this example). # svrmgrl <<EOFarch2 connect internal archive log start; exit EOFarch2 # # Now back up the archived redo logs to the tape # device via the "tar" command, then delete them # from the destination device via the "rm" command. # You may choose to compress them instead. # tar -rvf /dev/rmt/0hc $FILES rm -f $FILES # # Step 3. 备份控制文件到磁盘. # svrmgrl <<EOFarch3 connect internal alter database backup controlfile to ’db01/oracle/CC1/CC1controlfile.bck’; exit EOFarch3 # # 备份控制文件到磁带. # tar -rvf /dev/rmt/0hc /db01/oracle/CC1/CC1controlfile.bck # # End of hot backup script. //自动生成开始备份的脚本 set pagesize 0 feedback off select ’alter tablespace ’||Tablespace_Name||’ begin backup;’ from DBA_TABLESPACES where Status ’INVALID’ spool alter_begin.sql / spool off //自动生成备份结束的脚本 set pagesize 0 feedback off select ’alter tablespace ’||Tablespace_Name||’ end backup;’ from DBA_TABLESPACES where Status ’INVALID’ spool alter_end.sql / spool off //备份归档日志文件的脚本. REM See text for alternatives. # Step 1: Stop the archiving process. This will keep # additional archived redo log files from being written # to the destination directory during this process. # svrmgrl <<EOFarch1 connect internal as sysdba archive log stop; REM REM Exit Server Manager using the indicator set earlier. exit EOFarch1 # # Step 2: Record which files are in the destination # directory. # Do this by setting an environment variable that is # equal to the directory listing for the destination # directory. # For this example, the log_archive_dest is # /db01/oracle/arch/CC1. # FILES=`ls /db01/oracle/arch/CC1/arch*.dbf`; export FILES # # Step 3: Go back into Server Manager and restart the # archiving process. Set an indicator (called EOFarch2 # in this example). # svrmgrl <<EOFarch2 connect internal as sysdba archive log start; exit EOFarch2 # # Step 4. Back up the archived redo logs to the tape # device via the "tar" command, then delete them # from the destination device via the "rm" command. # tar -rvf /dev/rmt/0hc $FILES # # Step 5. Delete those files from the destination directory. # rm -f $FILES # # End of archived redo log file backup script. REM 磁盘到磁盘的备份 REM REM Back up the RBS tablespace - to another disk (UNIX) REM alter tablespace RBS begin backup; !cp /db02/oracle/CC1/rbs01.dbf /db10/oracle/CC1/backups alter tablespace RBS end backup; REM REM 移动归档日志文件的shell脚本 # # Procedure for moving archived redo logs to another device # svrmgrl <<EOFarch2 connect internal as sysdba archive log stop; !mv /db01/oracle/arch/CC1 /db10/oracle/arch/CC1 archive log start; exit EOFarch2 # # end of archived redo log directory move. //生成创建控制文件命令 alter database backup controlfile to trace; //时间点恢复的例子 connect internal as sysdba startup mount instance_name; recover database until time ’1999-08-07:14:40:00’; //创建恢复目录 rman rcvcat rman/rman@ // 在(UNIX)下创建恢复目录 RMAN> create catalog tablespace rcvcat; // 在(NT)下创建恢复目录 RMAN> create catalog tablespace "RCVCAT"; //连接描述符范例 (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=HQ) (PORT=1521)) (CONNECT DATA= (SID=loc))) // listener.ora 的条目entry // listener.ora 的条目entry LISTENER = (ADDRESS_LIST = (ADDRESS= (PROTOCOL=IPC) (KEY= loc.world) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = loc) (ORACLE_HOME = /orasw/app/oracle/product/8.1.5.1) ) ) // tnsnames.ora 的条目 LOC= (DESCRIPTION= (ADDRESS = (PROTOCOL = TCP) (HOST = HQ) (PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = loc) (INSTANCE_NAME = loc) ) ) //连接参数的设置(sql*net) LOC =(DESCRIPTION= (ADDRESS= (COMMUNITY=TCP.HQ.COMPANY) (PROTOCOL=TCP) (HOST=HQ) (PORT=1521)) (CONNECT DATA= (SID=loc))) //参数文件配置范例 // tnsnames.ora HQ =(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=HQ) (PORT=1521)) (CONNECT DATA= (SID=loc))) // listener.ora LISTENER = (ADDRESS_LIST = (ADDRESS= (PROTOCOL=IPC) (KEY= loc) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = loc) (ORACLE_HOME = /orasw/app/oracle/product/8.1.5.1) ) ) // Oracle8I tnsnames.ora LOC= (DESCRIPTION= (ADDRESS = (PROTOCOL = TCP) (HOST = HQ) (PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = loc) (INSTANCE_NAME = loc) ) ) //使用 COPY 实现数据库之间的复制 copy from remote_username/remote_password@service_name to username/password@service_name [append|create|insert|replace] TABLE_NAME using subquery; REM COPY example set copycommit 1 set arraysize 1000 copy from HR/PUFFINSTUFF@loc - create EMPLOYEE - using - select * from EMPLOYEE //监视器的管理 lsnrctl start lsnrctl start my_lsnr lsnrctl status lsnrctl status hq 检查监视器的进程 ps -ef | grep tnslsnr //在 lsnrctl 内停止监视器 set password lsnr_password stop //在lsnrctl 内列出所有的服务 set password lsnr_password services //启动或停止一个NT的listener net start OracleTNSListener net stop OracleTNSListener // tnsnames.ora 文件的内容 fld1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = server1.fld.com)(PORT = 1521)) ) (CONNECT_DATA = (SID = fld1) ) ) //操作系统网络的管理 telnet host_name ping host_name /etc/hosts 文件 130.110.238.109 nmhost 130.110.238.101 txhost 130.110.238.102 azhost arizona //oratab 表项 loc:/orasw/app/oracle/product/8.1.5.1:Y cc1:/orasw/app/oracle/product/8.1.5.1:N old:/orasw/app/oracle/product/8.1.5.0:Y //创建一个控制文件命令到跟踪文件 alter database backup controlfile to trace; //增加一个新的日志文件组的语句 connect internal as sysdba alter database add logfile group 4 (’/db01/oracle/CC1/log_1c.dbf’, ’/db02/oracle/CC1/log_2c.dbf’) size 5M; alter database add logfile member ’/db03/oracle/CC1/log_3c.dbf’ to group 4; //在Server Manager上MOUNT并打开一个数据库: connect internal as sysdba startup mount ORA1 exclusive; alter database open; //生成数据字典 @catalog @catproc //在init.ora 中备份数据库的位置 log_archive_dest_1 = ’/db00/arch’ log_archive_dest_state_1 = enable log_archive_dest_2 = "service=stby.world mandatory reopen=60" log_archive_dest_state_2 = enable //对用户的表空间的指定和管理相关的语句 create user USERNAME identified by PASSWORD default tablespace TABLESPACE_NAME; alter user USERNAME default tablespace TABLESPACE_NAME; alter user SYSTEM quota 0 on SYSTEM; alter user SYSTEM quota 50M on TOOLS; create user USERNAME identified by PASSWORD default tablespace DATA temporary tablespace TEMP; alter user USERNAME temporary tablespace TEMP; //重新指定一个数据文件的大小 : alter database datafile ’/db05/oracle/CC1/data01.dbf’ resize 200M; //创建一个自动扩展的数据文件: create tablespace DATA datafile ’/db05/oracle/CC1/data01.dbf’ size 200M autoextend ON next 10M maxsize 250M; //在表空间上增加一个自动扩展的数据文件: alter tablespace DATA add datafile ’/db05/oracle/CC1/data02.dbf’ size 50M autoextend ON maxsize 300M; //修改参数: alter database datafile ’/db05/oracle/CC1/data01.dbf’ autoextend ON maxsize 300M; //在数据文件移动期间重新命名: alter database rename file ’/db01/oracle/CC1/data01.dbf’ to ’/db02/oracle/CC1/data01.dbf’; alter tablespace DATA rename datafile ’/db01/oracle/CC1/data01.dbf’ to ’/db02/oracle/CC1/data01.dbf’; alter database rename file ’/db05/oracle/CC1/redo01CC1.dbf’ to ’/db02/oracle/CC1/redo01CC1.dbf’; alter database datafile ’/db05/oracle/CC1/data01.dbf’ resize 80M; //创建和使用角色: create role APPLICATION_USER; grant CREATE SESSION to APPLICATION_USER; grant APPLICATION_USER to username; //回滚段的管理 create rollback segment SEGMENT_NAME tablespace RBS; alter rollback segment SEGMENT_NAME offline; drop rollback segment SEGMENT_NAME; alter rollback segment SEGMENT_NAME online; //回滚段上指定事务 commit; set transaction use rollback segment ROLL_BATCH; insert into TABLE_NAME select * from DATA_LOAD_TABLE; commit; //查询回滚段的 大小和优化参数 select * from DBA_SEGMENTS where Segment_Type = ’ROLLBACK’; select N.Name, /* rollback segment name */ S.OptSize /* rollback segment OPTIMAL size */ from V$ROLLNAME N, V$ROLLSTAT S where N.USN=S.USN; //回收回滚段 alter rollback segment R1 shrink to 15M; alter rollback segment R1 shrink; //例子 set transaction use rollback segment SEGMENT_NAME alter tablespace RBS default storage (initial 125K next 125K minextents 18 maxextents 249) create rollback segment R4 tablespace RBS storage (optimal 2250K); alter rollback segment R4 online; select Sessions_Highwater from V$LICENSE; grant select on EMPLOYEE to PUBLIC; //用户和角色 create role ACCOUNT_CREATOR; grant CREATE SESSION, CREATE USER, ALTER USER to ACCOUNT_CREATOR; alter user THUMPER default role NONE; alter user THUMPER default role CONNECT; alter user THUMPER default role all except ACCOUNT_CREATOR; alter profile DEFAULT limit idle_time 60; create profile LIMITED_PROFILE limit FAILED_LOGIN_ATTEMPTS 5; create user JANE identified by EYRE profile LIMITED_PROFILE; grant CREATE SESSION to JANE; alter user JANE account unlock; alter user JANE account lock; alter profile LIMITED_PROFILE limit PASSWORD_LIFE_TIME 30; alter user jane password expire; //创建操作系统用户 REM Creating OPS$ accounts create user OPS$FARMER identified by SOME_PASSWORD default tablespace USERS temporary tablespace TEMP; REM Using identified externally create user OPS$FARMER identified externally default tablespace USERS temporary tablespace TEMP; //执行ORAPWD ORAPWD FILE=filename PASSWORD=password ENTRIES=max_users create role APPLICATION_USER; grant CREATE SESSION to APPLICATION_USER; create role DATA_ENTRY_CLERK; grant select, insert on THUMPER.EMPLOYEE to DATA_ENTRY_CLERK; grant select, insert on THUMPER.TIME_CARDS to DATA_ENTRY_CLERK; grant select, insert on THUMPER.DEPARTMENT to DATA_ENTRY_CLERK; grant APPLICATION_USER to DATA_ENTRY_CLERK; grant DATA_ENTRY_CLERK to MCGREGOR; grant DATA_ENTRY_CLERK to BPOTTER with admin option; //设置角色 set role DATA_ENTRY_CLERK; set role NONE; //回收权利: revoke delete on EMPLOYEE from PETER; revoke all on EMPLOYEE from MCGREGOR; //回收角色: revoke ACCOUNT_CREATOR from HELPDESK; drop user USERNAME cascade; grant SELECT on EMPLOYEE to MCGREGOR with grant option; grant SELECT on THUMPER.EMPLOYEE to BPOTTER with grant option; revoke SELECT on EMPLOYEE from MCGREGOR; create user MCGREGOR identified by VALUES ’1A2DD3CCEE354DFA’; alter user OPS$FARMER identified by VALUES ’no way’; //备份与恢复 使用 export 程序 exp system/manager file=expdat.dmp compress=Y owner=(HR,THUMPER) exp system/manager file=hr.dmp owner=HR indexes=Y compress=Y imp system/manager file=hr.dmp full=Y buffer=64000 commit=Y //备份表 exp system/manager FILE=expdat.dmp TABLES=(Thumper.SALES) //备份分区 exp system/manager FILE=expdat.dmp TABLES=(Thumper.SALES:Part1) //输入例子 imp system/manager file=expdat.dmp imp system/manager file=expdat.dmp buffer=64000 commit=Y exp system/manager file=thumper.dat owner=thumper grants=N indexes=Y compress=Y rows=Y imp system/manager file=thumper.dat FROMUSER=thumper TOUSER=flower rows=Y indexes=Y imp system/manager file=expdat.dmp full=Y commit=Y buffer=64000 imp system/manager file=expdat.dmp ignore=N rows=N commit=Y buffer=64000 //使用操作系统备份命令 REM TAR examples tar -cvf /dev/rmt/0hc /db0[1-9]/oracle/CC1 tar -rvf /dev/rmt/0hc /orasw/app/oracle/CC1/pfile/initcc1.ora tar -rvf /dev/rmt/0hc /db0[1-9]/oracle/CC1 /orasw/app/oracle/CC1/pfile/initcc1.ora //离线备份的shell脚本 ORACLE_SID=cc1; export ORACLE_SID ORAENV_ASK=NO; export ORAENV_ASK . oraenv svrmgrl <<EOF1 connect internal as sysdba shutdown immediate; exit EOF1 insert backup commands like the "tar" commands here svrmgrl <<EOF2 connect internal as sysdba startup EOF2 //在Server Manager上设置为archivelog mode: connect internal as sysdba startup mount cc1; alter database archivelog; archive log start; alter database open; //在Server Manager上设置为archivelog mode: connect internal as sysdba startup mount cc1; alter database noarchivelog; alter database open; select Name, Value from V$PARAMETER where Name like ’log_archive%’; //联机备份的脚本 # # Sample Hot Backup Script for a UNIX File System database # # Set up environment variables: ORACLE_SID=cc1; export ORACLE_SID ORAENV_ASK=NO; export ORAENV_ASK . oraenv svrmgrl <<EOFarch1 connect internal as sysdba REM REM 备份 SYSTEM tablespace REM alter tablespace SYSTEM begin backup; !tar -cvf /dev/rmt/0hc /db01/oracle/CC1/sys01.dbf alter tablespace SYSTEM end backup; REM REM The SYSTEM tablespace has now been written to a REM tar saveset on the tape device /dev/rmt/0hc. The REM rest of the tars must use the "-rvf" clause to append REM to that saveset. REM REM 备份 RBS tablespace REM alter tablespace RBS begin backup; !tar -rvf /dev/rmt/0hc /db02/oracle/CC1/rbs01.dbf alter tablespace RBS end backup; REM REM 备份 DATA tablespace REM For the purposes of this example, this tablespace REM will contain two files, data01.dbf and data02.dbf. REM The * wildcard will be used in the filename. REM alter tablespace DATA begin backup; !tar -rvf /dev/rmt/0hc /db03/oracle/CC1/data0*.dbf alter tablespace DATA end backup; REM REM 备份 INDEXES tablespace REM alter tablespace INDEXES begin backup; !tar -rvf /dev/rmt/0hc /db04/oracle/CC1/indexes01.dbf alter tablespace INDEXES end backup; REM REM 备份 TEMP tablespace REM alter tablespace TEMP begin backup; !tar -rvf /dev/rmt/0hc /db05/oracle/CC1/temp01.dbf alter tablespace TEMP end backup; REM REM Follow the same pattern to back up the rest REM of the tablespaces. REM REM REM Step 2. 备份归档日志文件. archive log stop REM REM Exit Server Manager, using the indicator set earlier. exit EOFarch1 # # Record which files are in the destination directory. # Do this by setting an environment variable that is # equal to the directory listing for the destination # directory. # For this example, the log_archive_dest is # /db01/oracle/arch/CC1. # FILES=`ls /db01/oracle/arch/CC1/arch*.dbf`; export FILES # # Now go back into Server Manager and restart the # archiving process. Set an indicator (called EOFarch2 # in this example). # svrmgrl <<EOFarch2 connect internal archive log start; exit EOFarch2 # # Now back up the archived redo logs to the tape # device via the "tar" command, then delete them # from the destination device via the "rm" command. # You may choose to compress them instead. # tar -rvf /dev/rmt/0hc $FILES rm -f $FILES # # Step 3. 备份控制文件到磁盘. # svrmgrl <<EOFarch3 connect internal alter database backup controlfile to ’db01/oracle/CC1/CC1controlfile.bck’; exit EOFarch3 # # 备份控制文件到磁带. # tar -rvf /dev/rmt/0hc /db01/oracle/CC1/CC1controlfile.bck # # End of hot backup script. //自动生成开始备份的脚本 set pagesize 0 feedback off select ’alter tablespace ’||Tablespace_Name||’ begin backup;’ from DBA_TABLESPACES where Status ’INVALID’ spool alter_begin.sql / spool off //自动生成备份结束的脚本 set pagesize 0 feedback off select ’alter tablespace ’||Tablespace_Name||’ end backup;’ from DBA_TABLESPACES where Status ’INVALID’ spool alter_end.sql / spool off //备份归档日志文件的脚本. REM See text for alternatives. # Step 1: Stop the archiving process. This will keep # additional archived redo log files from being written # to the destination directory during this process. # svrmgrl <<EOFarch1 connect internal as sysdba archive log stop; REM REM Exit Server Manager using the indicator set earlier. exit EOFarch1 # # Step 2: Record which files are in the destination # directory. # Do this by setting an environment variable that is # equal to the directory listing for the destination # directory. # For this example, the log_archive_dest is # /db01/oracle/arch/CC1. # FILES=`ls /db01/oracle/arch/CC1/arch*.dbf`; export FILES # # Step 3: Go back into Server Manager and restart the # archiving process. Set an indicator (called EOFarch2 # in this example). # svrmgrl <<EOFarch2 connect internal as sysdba archive log start; exit EOFarch2 # # Step 4. Back up the archived redo logs to the tape # device via the "tar" command, then delete them # from the destination device via the "rm" command. # tar -rvf /dev/rmt/0hc $FILES # # Step 5. Delete those files from the destination directory. # rm -f $FILES # # End of archived redo log file backup script. REM 磁盘到磁盘的备份 REM REM Back up the RBS tablespace - to another disk (UNIX) REM alter tablespace RBS begin backup; !cp /db02/oracle/CC1/rbs01.dbf /db10/oracle/CC1/backups alter tablespace RBS end backup; REM REM 移动归档日志文件的shell脚本 # # Procedure for moving archived redo logs to another device # svrmgrl <<EOFarch2 connect internal as sysdba archive log stop; !mv /db01/oracle/arch/CC1 /db10/oracle/arch/CC1 archive log start; exit EOFarch2 # # end of archived redo log directory move. //生成创建控制文件命令 alter database backup controlfile to trace; //时间点恢复的例子 connect internal as sysdba startup mount instance_name; recover database until time ’1999-08-07:14:40:00’; //创建恢复目录 rman rcvcat rman/rman@ // 在(UNIX)下创建恢复目录 RMAN> create catalog tablespace rcvcat; // 在(NT)下创建恢复目录 RMAN> create catalog tablespace "RCVCAT"; //连接描述符范例 (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=HQ) (PORT=1521)) (CONNECT DATA= (SID=loc))) // listener.ora 的条目entry //创建一个控制文件命令到跟踪文件 alter database backup controlfile to trace; //增加一个新的日志文件组的语句 connect internal as sysdba alter database add logfile group 4 (’/db01/oracle/CC1/log_1c.dbf’, ’/db02/oracle/CC1/log_2c.dbf’) size 5M; alter database add logfile member ’/db03/oracle/CC1/log_3c.dbf’ to group 4; //在Server Manager上MOUNT并打开一个数据库: connect internal as sysdba startup mount ORA1 exclusive; alter database open; //生成数据字典 @catalog @catproc //在init.ora 中备份数据库的位置 log_archive_dest_1 = ’/db00/arch’ log_archive_dest_state_1 = enable log_archive_dest_2 = "service=stby.world mandatory reopen=60" log_archive_dest_state_2 = enable //对用户的表空间的指定和管理相关的语句 create user USERNAME identified by PASSWORD default tablespace TABLESPACE_NAME; alter user USERNAME default tablespace TABLESPACE_NAME; alter user SYSTEM quota 0 on SYSTEM; alter user SYSTEM quota 50M on TOOLS; create user USERNAME identified by PASSWORD default tablespace DATA temporary tablespace TEMP; alter user USERNAME temporary tablespace TEMP; //重新指定一个数据文件的大小 : alter database datafile ’/db05/oracle/CC1/data01.dbf’ resize 200M; //创建一个自动扩展的数据文件: create tablespace DATA datafile ’/db05/oracle/CC1/data01.dbf’ size 200M autoextend ON next 10M maxsize 250M; //在表空间上增加一个自动扩展的数据文件: alter tablespace DATA add datafile ’/db05/oracle/CC1/data02.dbf’ size 50M autoextend ON maxsize 300M; //修改参数: alter database datafile ’/db05/oracle/CC1/data01.dbf’ autoextend ON maxsize 300M; //在数据文件移动期间重新命名: alter database rename file ’/db01/oracle/CC1/data01.dbf’ to ’/db02/oracle/CC1/data01.dbf’; alter tablespace DATA rename datafile ’/db01/oracle/CC1/data01.dbf’ to ’/db02/oracle/CC1/data01.dbf’; alter database rename file ’/db05/oracle/CC1/redo01CC1.dbf’ to ’/db02/oracle/CC1/redo01CC1.dbf’; alter database datafile ’/db05/oracle/CC1/data01.dbf’ resize 80M; //创建和使用角色: create role APPLICATION_USER; grant CREATE SESSION to APPLICATION_USER; grant APPLICATION_USER to username; //回滚段的管理 create rollback segment SEGMENT_NAME tablespace RBS; alter rollback segment SEGMENT_NAME offline; drop rollback segment SEGMENT_NAME; alter rollback segment SEGMENT_NAME online; //回滚段上指定事务 commit; set transaction use rollback segment ROLL_BATCH; insert into TABLE_NAME select * from DATA_LOAD_TABLE; commit; //查询回滚段的 大小和优化参数 select * from DBA_SEGMENTS where Segment_Type = ’ROLLBACK’; select N.Name, /* rollback segment name */ S.OptSize /* rollback segment OPTIMAL size */ from V$ROLLNAME N, V$ROLLSTAT S where N.USN=S.USN; //回收回滚段 alter rollback segment R1 shrink to 15M; alter rollback segment R1 shrink; //例子 set transaction use rollback segment SEGMENT_NAME alter tablespace RBS default storage (initial 125K next 125K minextents 18 maxextents 249) create rollback segment R4 tablespace RBS storage (optimal 2250K); alter rollback segment R4 online; select Sessions_Highwater from V$LICENSE; grant select on EMPLOYEE to PUBLIC; //用户和角色 create role ACCOUNT_CREATOR; grant CREATE SESSION, CREATE USER, ALTER USER to ACCOUNT_CREATOR; alter user THUMPER default role NONE; alter user THUMPER default role CONNECT; alter user THUMPER default role all except ACCOUNT_CREATOR; alter profile DEFAULT limit idle_time 60; create profile LIMITED_PROFILE limit FAILED_LOGIN_ATTEMPTS 5; create user JANE identified by EYRE profile LIMITED_PROFILE; grant CREATE SESSION to JANE; alter user JANE account unlock; alter user JANE account lock; alter profile LIMITED_PROFILE limit PASSWORD_LIFE_TIME 30; alter user jane password expire; //创建操作系统用户 REM Creating OPS$ accounts create user OPS$FARMER identified by SOME_PASSWORD default tablespace USERS temporary tablespace TEMP; REM Using identified externally create user OPS$FARMER identified externally default tablespace USERS temporary tablespace TEMP; //执行ORAPWD ORAPWD FILE=filename PASSWORD=password ENTRIES=max_users create role APPLICATION_USER; grant CREATE SESSION to APPLICATION_USER; create role DATA_ENTRY_CLERK; grant select, insert on THUMPER.EMPLOYEE to DATA_ENTRY_CLERK; grant select, insert on THUMPER.TIME_CARDS to DATA_ENTRY_CLERK; grant select, insert on THUMPER.DEPARTMENT to DATA_ENTRY_CLERK; grant APPLICATION_USER to DATA_ENTRY_CLERK; grant DATA_ENTRY_CLERK to MCGREGOR; grant DATA_ENTRY_CLERK to BPOTTER with admin option; //设置角色 set role DATA_ENTRY_CLERK; set role NONE; //回收权利: revoke delete on EMPLOYEE from PETER; revoke all on EMPLOYEE from MCGREGOR; //回收角色: revoke ACCOUNT_CREATOR from HELPDESK; drop user USERNAME cascade; grant SELECT on EMPLOYEE to MCGREGOR with grant option; grant SELECT on THUMPER.EMPLOYEE to BPOTTER with grant option; revoke SELECT on EMPLOYEE from MCGREGOR; create user MCGREGOR identified by VALUES ’1A2DD3CCEE354DFA’; alter user OPS$FARMER identified by VALUES ’no way’; //备份与恢复 使用 export 程序 exp system/manager file=expdat.dmp compress=Y owner=(HR,THUMPER) exp system/manager file=hr.dmp owner=HR indexes=Y compress=Y imp system/manager file=hr.dmp full=Y buffer=64000 commit=Y //备份表 exp system/manager FILE=expdat.dmp TABLES=(Thumper.SALES) //备份分区 exp system/manager FILE=expdat.dmp TABLES=(Thumper.SALES:Part1) //输入例子 imp system/manager file=expdat.dmp imp system/manager file=expdat.dmp buffer=64000 commit=Y exp system/manager file=thumper.dat owner=thumper grants=N indexes=Y compress=Y rows=Y imp system/manager file=thumper.dat FROMUSER=thumper TOUSER=flower rows=Y indexes=Y imp system/manager file=expdat.dmp full=Y commit=Y buffer=64000 imp system/manager file=expdat.dmp ignore=N rows=N commit=Y buffer=64000 //使用操作系统备份命令 REM TAR examples tar -cvf /dev/rmt/0hc /db0[1-9]/oracle/CC1 tar -rvf /dev/rmt/0hc /orasw/app/oracle/CC1/pfile/initcc1.ora tar -rvf /dev/rmt/0hc /db0[1-9]/oracle/CC1 /orasw/app/oracle/CC1/pfile/initcc1.ora //离线备份的shell脚本 ORACLE_SID=cc1; export ORACLE_SID ORAENV_ASK=NO; export ORAENV_ASK . oraenv svrmgrl <<EOF1 connect internal as sysdba shutdown immediate; exit EOF1 insert backup commands like the "tar" commands here svrmgrl <<EOF2 connect internal as sysdba startup EOF2 //在Server Manager上设置为archivelog mode: connect internal as sysdba startup mount cc1; alter database archivelog; archive log start; alter database open; //在Server Manager上设置为archivelog mode: connect internal as sysdba startup mount cc1; alter database noarchivelog; alter database open; select Name, Value from V$PARAMETER where Name like ’log_archive%’; //联机备份的脚本 # # Sample Hot Backup Script for a UNIX File System database # # Set up environment variables: ORACLE_SID=cc1; export ORACLE_SID ORAENV_ASK=NO; export ORAENV_ASK . oraenv svrmgrl <<EOFarch1 connect internal as sysdba REM REM 备份 SYSTEM tablespace REM alter tablespace SYSTEM begin backup; !tar -cvf /dev/rmt/0hc /db01/oracle/CC1/sys01.dbf alter tablespace SYSTEM end backup; REM REM The SYSTEM tablespace has now been written to a REM tar saveset on the tape device /dev/rmt/0hc. The REM rest of the tars must use the "-rvf" clause to append REM to that saveset. REM REM 备份 RBS tablespace REM alter tablespace RBS begin backup; !tar -rvf /dev/rmt/0hc /db02/oracle/CC1/rbs01.dbf alter tablespace RBS end backup; REM REM 备份 DATA tablespace REM For the purposes of this example, this tablespace REM will contain two files, data01.dbf and data02.dbf. REM The * wildcard will be used in the filename. REM alter tablespace DATA begin backup; !tar -rvf /dev/rmt/0hc /db03/oracle/CC1/data0*.dbf alter tablespace DATA end backup; REM REM 备份 INDEXES tablespace REM alter tablespace INDEXES begin backup; !tar -rvf /dev/rmt/0hc /db04/oracle/CC1/indexes01.dbf alter tablespace INDEXES end backup; REM REM 备份 TEMP tablespace REM alter tablespace TEMP begin backup; !tar -rvf /dev/rmt/0hc /db05/oracle/CC1/temp01.dbf alter tablespace TEMP end backup; REM REM Follow the same pattern to back up the rest REM of the tablespaces. REM REM REM Step 2. 备份归档日志文件. archive log stop REM REM Exit Server Manager, using the indicator set earlier. exit EOFarch1 # # Record which files are in the destination directory. # Do this by setting an environment variable that is # equal to the directory listing for the destination # directory. # For this example, the log_archive_dest is # /db01/oracle/arch/CC1. # FILES=`ls /db01/oracle/arch/CC1/arch*.dbf`; export FILES # # Now go back into Server Manager and restart the # archiving process. Set an indicator (called EOFarch2 # in this example). # svrmgrl <<EOFarch2 connect internal archive log start; exit EOFarch2 # # Now back up the archived redo logs to the tape # device via the "tar" command, then delete them # from the destination device via the "rm" command. # You may choose to compress them instead. # tar -rvf /dev/rmt/0hc $FILES rm -f $FILES # # Step 3. 备份控制文件到磁盘. # svrmgrl <<EOFarch3 connect internal alter database backup controlfile to ’db01/oracle/CC1/CC1controlfile.bck’; exit EOFarch3 # # 备份控制文件到磁带. # tar -rvf /dev/rmt/0hc /db01/oracle/CC1/CC1controlfile.bck # # End of hot backup script. //自动生成开始备份的脚本 set pagesize 0 feedback off select ’alter tablespace ’||Tablespace_Name||’ begin backup;’ from DBA_TABLESPACES where Status ’INVALID’ spool alter_begin.sql / spool off //自动生成备份结束的脚本 set pagesize 0 feedback off select ’alter tablespace ’||Tablespace_Name||’ end backup;’ from DBA_TABLESPACES where Status ’INVALID’ spool alter_end.sql / spool off //备份归档日志文件的脚本. REM See text for alternatives. # Step 1: Stop the archiving process. This will keep # additional archived redo log files from being written # to the destination directory during this process. # svrmgrl <<EOFarch1 connect internal as sysdba archive log stop; REM REM Exit Server Manager using the indicator set earlier. exit EOFarch1 # # Step 2: Record which files are in the destination # directory. # Do this by setting an environment variable that is # equal to the directory listing for the destination # directory. # For this example, the log_archive_dest is # /db01/oracle/arch/CC1. # FILES=`ls /db01/oracle/arch/CC1/arch*.dbf`; export FILES # # Step 3: Go back into Server Manager and restart the # archiving process. Set an indicator (called EOFarch2 # in this example). # svrmgrl <<EOFarch2 connect internal as sysdba archive log start; exit EOFarch2 # # Step 4. Back up the archived redo logs to the tape # device via the "tar" command, then delete them # from the destination device via the "rm" command. # tar -rvf /dev/rmt/0hc $FILES # # Step 5. Delete those files from the destination directory. # rm -f $FILES # # End of archived redo log file backup script. REM 磁盘到磁盘的备份 REM REM Back up the RBS tablespace - to another disk (UNIX) REM alter tablespace RBS begin backup; !cp /db02/oracle/CC1/rbs01.dbf /db10/oracle/CC1/backups alter tablespace RBS end backup; REM REM 移动归档日志文件的shell脚本 # # Procedure for moving archived redo logs to another device # svrmgrl <<EOFarch2 connect internal as sysdba archive log stop; !mv /db01/oracle/arch/CC1 /db10/oracle/arch/CC1 archive log start; exit EOFarch2 # # end of archived redo log directory move. //生成创建控制文件命令 alter database backup controlfile to trace; //时间点恢复的例子 connect internal as sysdba startup mount instance_name; recover database until time ’1999-08-07:14:40:00’; //创建恢复目录 rman rcvcat rman/rman@ // 在(UNIX)下创建恢复目录 RMAN> create catalog tablespace rcvcat; // 在(NT)下创建恢复目录 RMAN> create catalog tablespace "RCVCAT"; //连接描述符范例 (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=HQ) (PORT=1521)) (CONNECT DATA= (SID=loc))) // listener.ora 的条目entry ……………………………………………………………………………………

2011-12-09

mysql授权用户 开发用户帮助文档

mysql如何授权用户 开发用户帮助文档

2011-12-09

jpivot学习总结.doc

1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用当中你需要下面的这些文件: /wcf/** /jpivot/** /WEB-INF/wcf/** /WEB-INF/jpivot/** /WEB-INF/lib/** 最后你还需要对比 jpivot.war 里的 web.xml 文件去修改你自己的 web.xml 文件。 2. 例子说明 一个Schema的xml文件,定义立方体;(feeSchema.xml) 一个jsp文件(fee.jsp),使用jpivot的标签(jp:mondrianQuery),写入多维查询表达式。 2.1. 数据库连接  直接用jdbc <jp:mondrianQuery dataSource="" id="query01" jdbcDriver="oracle.jdbc.driver.OracleDriver" jdbcUrl="jdbc:oracle:thin:ngykt/[email protected]:1521:orcl10" catalogUri="/WEB-INF/queries/feeSchema.xml">  在应用服务器中定义数据源 <jp:mondrianQuery dataSource="feeDS" id="query01" catalogUri="/WEB-INF/queries/feeSchema.xml"> 例子在tomcat中定义了数据源feeDS 2.2. 各种维度类型  一般维度 例子中定义了维度:[term].[所有终端] 按终端id统计缴费情况。  多level维度 例子中定义了维度:[agentTerm].[所有终端] 按代理商,终端两级统计缴费情况  有父子关系维度 例子中定义了维度:[area].[所有地区] 按组织机构级别统计缴费情况 在定义父子级别时,要指定parentColumn和nullParentValue 且要定义Closure,如果不定义,指标钻取的数据有问题。 Closure表针对维度表计算distance,Closure表的生产参见例子中的存储过程sp_zycreateorgclosure 例如: <Level name="地区" uniqueMembers="true" nameColumn="ORGENTITYNAME" column="ORGENTITYID" parentColumn="ORGENTITYPARENT" nullParentValue="null"> <Closure parentColumn="ORGENTITYPARENT" childColumn="ORGENTITYID"> <Table name="ZY_ORG_CLOSURE"/> </Closure> </Level> 3. Mondrian Schema详解 3.1. Schema Schema 定义了一个多维数据库。包含了一个逻辑模型,而这个逻辑模型的目的是为了书写 MDX 语言的查询语句。这个逻辑模型实际上提供了这几个概念: Cubes (立方体)、维度( Dimensions )、层次( Hierarchies )、级别( Levels )、和成员( Members )。而一个 schema 文件就是编辑这个 schema 的一个 xml 文件。在这个文件中形成逻辑模型和数据库物理模型的对应。 3.2. Cube 一个 Cube 是一系列维度 (Dimension) 和度量 (Measure) 的集合区域。在 Cube 中, Dimension 和 Measure 的共同地方就是共用一个事实表。 Cube 中的有以下几个属性: 属性名 含义 name Cube 的名字 caption 标题 , 在表示层显示的 cache 是否对 Cube 对应的实表用 mondrian 进行存储 , 默认为 true enabled 是布尔型的 , 如果是被激活 ,Cubes 就执行 , 否则就不予理睬,默认为 true Cube 里面有一个全局的标签定义了所用的事实表的表名 3.3. Dimension 他是一个层次( Hierarchies )的集合 , 维度一般有其相对应的维度表 . 他的组成是由层次( Hierarchies )而层次( Hierarchies )又是有级别( Level )组成 . 其属性如下: 属性名 含义 name Dimension 的名称 type 类型,有两个可选的类型: StandarDimension 和 TimeDimension ,默认为 StandardDimension caption 标题 , 在表示层显示的 UsagePrefix 加前缀 , 消除歧义 foreignKey 外键,对应事实表中的一个列,它通过 <Hierarchy> 元素中的主键属性连接起来。 3.4. Hierarchy 你一定要指定其中的各种关系 , 如果没有指定 , 就默认 Hierarchy 里面装的是来自立方体中的真实表 . 属性如下: 属性名 含义 name Hierarchy 的名称,该值可以为空,为空时表示 Hirearchy 的名字和 Dimension 的名字相同。当一个 Dimension 有多个 Hierarchy 时,注意 name 值要唯一。 hasAll 布尔型的 , 决定是否包含全部的成员 member allMemberName 所有成员的名字 , 也就是总的标题 , 例如: allMemberName= “全部产品” allLevelName 所有级别的名字,它会覆盖其下所有的 Member 的 name 和所有的 Level 的 name 属性的值。 allMemberCaption 例如 : allMemberCaption= “全部产品”这个是在表示层显示的内容 PrimaryKey 通过主键来确定成员,该主键指的是成员表中的主键,该主键同时要与 Dimension 里设置的 foreignKey 属性对应的字段形成外键对应关系 primaryKeyTable 如果成员表不只一个,而是多个表通过 join 关系形成的,那么就要通过这个属性来指明 join 的这些表中,哪一个与 Dimension 里设置的 foreignKey 属性形成外键关系。通过该属性来指明主表 caption 标题 , 在表示层显示的 defaultMember memberReaderClass 设定一个成员读取器,默认情况下 Hierarchy 都是从关系型数据库里读取的,如果你的数据不在 RDBMS 里面的话,你可以通过自定义一个 member reader 来表现一个 Hierarchy 。 3.5. Level 级别 , 他是组成 Hierarchy 的部分。属性很多,并且是 schema 编写的关键,使用它可以构成一个结构树, Level 的先后顺序决定了 Level 在这棵树上的的位置,最顶层的 Level 位于树的第一级,依次类推。 Level 的属性如下: 属性名 含义 name 名称 table 该 Level 要使用的表名 column 用上面指定的表中某一列作为该 Level 的关键字 nameColumn 用来显示的时候使用,如果不定义,那么就采用上面的 column 的值来进行显示。 oridinalColumn 定义该 Level 上的成员的显示顺序,如果不指定,那么采用 column 的值。 parentColumn 在一个有父 - 子关系的 Hierarchy 当中,当前 Level 引用的是其父成员的列名。好比是一张部门表,在一张表里表现部门的上下级关系,一个是主键,肯定还有一个字段为连接到该主键的外键的列名,这里的 parentColumn 指的就是这个列名。 nullParentValue 如果当前的 Level 是有上下级关系(设置了 parentColumn 属性),如果该 Level 又处于顶级,我们需要将顶级的数据取出来,这里指的是位于顶级的父成员的值,有些数据库不支持 null, 那么也可以使用 ’0’ 或 ’-1’ 等,这就表示顶级的成员的父 ID 为 ’0’ 或为 ’-1’ 。 type 数据类型,默认值为 string 。当然还可以是 Numeric 、 Integer 、 Boolean 、 Date 等。 uniqueMembers 该属性用于优化产生的 SQL ,如果你知道这个级别和其父级别交叉后的值或者是维度表中给定的级别所有的值是唯一的,那么就可以设置该值为 true ,否则为 false 。 levelType 该 Level 的类型,默认为 regular (正常的),如果你在其 Dimension 属性 type 里选择了 TimeDimension 那么这里就可以选择 TimeYears 、 TimeQuarters 、 TimeMonth 、 TimeWeeds 、 TimeDays 。 hideMemberIf 在什么时候不隐藏该成员,可选的值有三个: Never 、 IfBlankName 、 IfParentName approxRowCount 该属性可以用来提高性能,可以通过指定一个数值以减少判断级别、层次、维度基数的时间,该属性在通过使用 XMLA 连接 Mondrian 很有用处。 caption 标题 , 在表示层显示的 captionColumn 用来显示标题的列 formatter 该属性定义了 Member.getCaption() 方法返回的动作值,这里需要是一个实现了 mondrian.olap.MemberFormatter 接口的类,用来对 Caption 地值进行格式化。 3.6. Join 对于一个 Hierarchy 来说,有两种方式为其指定:一种是直接通过一个 Table 标签指定;一种是通过 Join 将若干张表连接起来指定。一旦采用 Join 的话,那么就要在 Hierarchy 里的 primaryKeyTable 属性指定主表。 3.7. Measure Measure 就是我们要计算的数值,操作的核心。它的属性如下: 属性名 含义 name 名称 aggregator 要采用的计算函数 column 要计算的列名 formatString 计算结果的显示格式。 visible 是否可见 datatype 数据类型,默认为 Numeric formatter 采用类来对该 Measure 的值进行格式,具体参考 Level 的 formatter 属性。 caption 标题,用来显示时使用。 4. JPivot标签库使用详解 4.1. Introduce JPivot 是一套基于 Mondrian 的 OLAP 前端展现工具,它提供了一套标签库来解决的 OLAP 的展现层问题。 在一个 JSP 页面当中,如果要使用 JPivot 标签库,除了要配置相关的配置文件外,我们需要在 JSP 头的位置声明对 JPivot 标签库的引用,引用方法如下: <%@ taglib uri = "http://www.tonbeller.com/jpivot" prefix = "jp" %> JPivot 标签库包含以下几个标签: chart chooseQuery clickable destroyQuery mondrianQuery navitator print scalarQuery setParam table testQuery xmlaQuery 接下来我们将详细介绍这些标签的具体用法及相关参数的含义。 4.2. chart 创建一个图表组件,这个图表组件的标签不能直接产生可见输出,它必须通过 WCF 的渲染标签才行。 chart 标签的主要属性如下: 属性名 必须 数据类型 是否能动态计算指定 描述 id 是 String 是 标签的 ID visible 否 boolean 是 用来设置该组件是否可见,当该属性为 false 时 WCF 标签半角不显示该组件。 role 否 String 是 Role 的名称,如: role=”tomcat” 就允许当前用户角色为 tomcat 的访问该控件, role=”!tomcat” 则就允许除角色为 tomcat 以外的所有的用户访问。 query 是 OlapModel 是 一个 mondrianQuery 标签的 ID 值 baseDisplayURL 否 String 是 显示图表的链接,链接的后面还要添加参数“ ?=filename=[ 临时图表文件的名称 ] ” controllerURL 否 String 是 链接到 JPivot Controller 的 URL ,该属性在一些复杂环境下比如 Portal 之类就很有用。 4.3. chooseQuery 从前面创建的若干个查询当中选择一个合适的查询(通过查询名称进行选择),例如: <jp:mondrianQuery id="query01" queryName="name1"> SELECT ... </jp:mondrianQuery> <jp:mondrianQuery id="query01" queryName="name2"> SELECT ... </jp:mondrianQuery> ... <jp:chooseQuery id="query01" queryName="name1"/> 它的属性比较简单,只有 id 和 queryName 两个,而且比较容易理解。 4.4. clickable 该标签的作用是给一个 dimension 或一个 level 里的所有的 members 加上超链,使得它们变的可以进行点击操作。生成的 URL 中包含这个 member 的唯一名称,这个标签必须要在一个 table 或一个 query 的标签里嵌套使用。 这个动作还依赖于该标签的 sessionParam 属性,如果该属性存在,那么参数值将在页面显示之前写到 com.tonbeller.jpivot.param.SessionParamPool 当中,如果不存在该属性,参数将会被编码到超链接当中。 例如: <jp:mondrianQuery ...> select .. from Sales <jp:clickable urlPattern="/otherpage.jsp?param={0}" uniqueName="[Customers]"/> <jp:clickable page="/yetotherpage.jsp" uniqueName="[Products].[Category]" sessionParam="Category"/> </jp:mondrianQuery> 该标签的主要属性如下: 属性名 必须 数据类型 是否能动态计算指定 描述 urlPattern 否 String 是 该属性已过时,使用 page 属性替代它。 page 否 String 是 目标页面的名称,该属性的值必须要以“ / ”开始,如果不设置,那么会采用当前页面的名称。 uniqueName 否 String 是 一个 dimension 或 hierarchy 或 level 的唯一名称,用来标识哪个 member 将可以点击。 menuLabel 否 String 是 如果多次定义 clickable ,那么它将通过一个右键来进行显示,这里的值就是右键菜单的名称。 sessionParam 否 String 是 参数名称,它将会被回写到 com.tonbeller.jpivot.param.SessionParamPool 当中。 propertyName 否 String 是 该属性如果存在,该 member 属性的值将会被带到 com.tonbeller.jpivot.param.Parameter 的 sqlValue 的属性当中。 propertyPrefix 否 String 是 如果存在该属性,多个 SessionParam 将会被创建,每一个 member 的名字的开始部分将采用该属性的值。 providerClass 否 String 是 如果存在该属性,这个类的实例将会从当前的 member 中获取 SessionParam 对象的实例,这里的类必须实现 com.tonbeller.jpivot.table.navi.ClickableMember.ParameterProvider 接口。 4.5. destroyQuery 该标签的主要作用是销毁所有的查询,它的用法如下: <jp:destroyQuery id="query01"/> 它只有一个 ID 属性。 4.6. mondrianQuery 该标签的主要作用是让 mondrian 执行指定的查询,该标签需要指定一个 JDBC 的 datasource 或单独指定 JDBC 连接的各个属性从而可以让 mondrian 连接到指定的数据库。 它的用法如下: <jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost/foodmart" catalogUri="/WEB-INF/test/FoodMart.xml"> select {[Measures].[Unit Sales], [Measures].[Store Cost], [Measures].[Store Sales]} on columns, {[Product].[All Products]} ON rows from Sales where ([Time].[1997]) </jp:mondrianQuery> 它的主要属性如下: 属性名 必须 数据类型 是否能动态计算指定 描述 id 是 String 是 标签的 ID jdbcDriver 否 String 是 要连接到目标数据库的驱动类名 jdbcUrl 否 String 是 目标数据库的 URL jdbcUser 否 String 是 登录数据库的用户名 jdbcPassword 否 String 是 登录数据库的密码 dataSource 否 String 是 可以连接到数据库的 JNDI 名称,如 jdbc/SampleDB ,当使用它时另外四个单独连接数据库的属性不可以再用。 catalogUri 是 String 是 Mondrian Schema 文件所在的路径,指定路径时需要从 web 应用的根开始,如 /WEB-INF/FoodMart.xml 。 role 否 String 是 指定角色,该角色的值来自 Mondrian Schema 里定义的角色。 dynResolver 否 String 是 指定一个用来解析 Mondrian Schema 里定义的动态变量的解析类。 connectionPooling 否 String 是 当该值为 false 时,将从连接池里阻止 Mondrian dynLocale 否 String 是 设置动态解析 Mondrian Schema 里的 Local dataSourceChangeListener 否 String 是 指定一个类用来检测 datasource 的变化。 queryName 否 String 是 这个属性允许保留多个查询,对于每一个查询,最后一个查询将会被存储下来,可以使用 chooseQuery 标签在查询间进行切换。 stackMode 否 boolean 是 如果设置为 false ,那么所有的查询将同时被处理;如果设置为 true ,那么将保持其原有的顺序,例如: 查询名称为 qn1 的创建后,标签就马上将其显示出来 ; 接下来创建 qn2 ,现在 stack 里有 qn1 和 qn2 , qn2 也将被显示出来。 4.7. navigator 创建一个导航组件,这个组件不会直接输出,它必须通过 WCF 的标签来 render 输出。 示例用法: <jp:navigator id="navi01" query="#{query01}" visible="false"/> <wcf:render ref="navi01" xslUri="/WEB-INF/jpivot/navi/navigator.xsl" xslCache="true"/> 该标签的主要属性如下: 属性名 必须 数据类型 是否能动态计算指定 描述 id 是 String 是 标签的 ID query 是 OlapModel 是 指定一个 mondrianQuery 标签的名称 visible 否 boolean 是 设置该组件是否可见,如果设置为 false 那么 WCF 的 render 标签将不会 render 该组件。 role 否 String 是 角色的名称,可以加前缀“!”,表示“除 … 角色之外”都可以访问该组件,否则就是只有该角色才能访问该组件。 4.8. print 创建一个打印控件,该控件不能直接输出,你必须创建 WCF form 来调用打印的 servlet 来生成 XLS/PDF 文件。 该标签只有一个 ID 属性。 4.9. scalarQuery 创建一个包含由单个单元格的组成的 OLAP 结果的会话属性,它的值由标签的属性提供。 示例用法: <jp:scalarQuery id="query01" value="#{some.bean.property}"> formattedValue="#{some.bean.otherProperty}" caption="Some Caption" /> 它的主要属性如下: 属性名 必须 数据类型 是否能动态计算指定 描述 id 是 String 是 标签的 ID value 是 String 是 是一个 EL 的表达式,通过 EL 表达式来计算值,这里是一个数字。 formattedValue 否 String 是 用一个 EL 表达式来计算格式化后的值,是一个字符串 caption 否 String 是 用一个 EL 表达式来生成 caption 的值,这里是一个字符串 queryName 否 String 是 请参考 mondrianQuery 标签 stackMode 否 boolean 是 请参考 mondrianQuery 标签 4.10. selectProperties 创建一个选择属性的组件,该组件不会直接输出,必须要与 WCF 的 render 标签结合。 示例用法: <jp:selectproperties id="selectprop01" table="#{table01}" visible="false"/> <wcf:render ref="selectprop01" xslUri="/WEB-INF/jpivot/navi/navigator.xsl" xslCache="true"/> 它的主要属性如下: 属性名 必须 数据类型 是否能动态计算指定 描述 id 是 String 是 标签的 ID table 是 TableComponent 是 该属性用来指定一个表格组件。 visible 否 boolean 是 设置该组件是否可见,如果设置为 false 那么 WCF 组件将不会显示该组件。 role 否 String 是 指定角色,同样可以使用“!” 4.11. setParam 通过 get 或 post 或 session 里的值为 MDX 查询设置查询参数。示例用法: <jp:mondrianQuery id="query01"...> SELECT ... Parameter("Param01", ... WHERE ... </jp:mondrianQuery/> <jp:setParam query="query01" httpParam="param" mdxParam="Param01"/> or <jp:setParam query="query01" sessionParam="CUSTOMER" mdxParam="Param01"/> 它的主要属性如下: 属性名 必须 数据类型 是否能动态计算指定 描述 query 是 OlapModel 是 指定一个 mondrianQuery 标签的名称 httpParam 否 String 是 http 参数的名称,如果存在该属性,那么它的值将会被告解析并设置到 mdx 查询的 parameter 当中 sessionParam 否 String 是 Session 的参数名称 mdxParam 是 String 是 MDX 的 parameter 的名称 4.12. table 创建一个 pivot 的表格组件,该组件要借助于 WCF 的 render 标签输出。 示例用法: <jp:table id="table01" query="#{query01}" visible="true"/> 该标签的主要属性如下: 属性名 必须 数据类型 是否能动态计算指定 描述 id 是 String 是 标签的 ID visible 否 boolean 是 设置组件是否可见,如果为 false 那么 WCF 的标签将不会将其 render 。 role 否 String 是 可访问该组件的角度,支持“!”用法 query 是 OlapModel 是 指定一个 mondrianQuery 标签的名称 5. 多维查询表达式 5.1. 什么是 MDX MDX 的全称是 Mutil Dimensional Expressions ,是由 Microsoft , Hyperion 等公司研究多维查询表达式,是所有 OLAP 高级分析所采用的核心查询语言。 MDX 可以用来进行以下操作: 1. calculated members (计算成员) 2. Calculated Cells (计算单元) 3. Security Settion (安全设置) 4. Custom member formula ( 自定义函数 ) 5. Custom level rollup () 6. Actions (动作) 7. Named “ sets ” ( 命名集合 ) 8. Server side formatting (服务器数据格式化) 5.2. MDX 的基本结构 MDX 的基本结构有三种: Members 、 Tuple 、 Set 。 5.2.1. Members 指的是维度树上的一个节点,这里有一点需要指出,量度也是一个特殊的维度,所以对于普通维度上的 Member 可以有几下几种表示方法: [Customer] 或 [Time].[1996] 等,对于特殊的维度——量度而言,也可以表示一个 Member ,如: [Measures].[ unit sales] 等。 Member 的表示方法就是用中括号的形式,“ [……] ”。 5.2.2. Tuple Tuple :是由若干个 Members 组成,每一个维度上最多只能有一个 Member ,对于一个 Tuple 而言至少有一个维度,多则不限,同时对于没有列出来的那就表示为默认的 Member 。 Tuple 的表示方法是小括号“ () ”,因为其又有 Member 构成,所以通常的格式为“ ([…],[…][…],…) ”;示例: a) ([Regin ].[USA]) b) ([product].[ computers],[time].[2008]) 。 5.2.3. Sets 同一维度上若干个 Members 的集合,或者是若干个 Tuples 的集合,但这里有一个地方需要注意,那就是如果是若干个 Tuple 组成的集合是,各个 Tuple 里的 Member 之间存在着一定的对应关系。集合的表示方法用大括号“ {} ”,所以可能的表示方法为: a) {[time].[2008],[time].[2009],[time].[2000]} ,这里 Set 是由同一维度的若干个 Member 组成。 b) {([computer],[usa ]),([ mobile],[china])} ,这个 Set 是由两个 Tuples 组成,这里大家可以看到,在第一个 Tuple 当中,第一个 Member 是名为 computer 的产品,所以后面的 Tuple 的第一个 Member 也必须是一个产品,所以我们这里看到的是 mobile ,第一个 Tuple 里第二个 Member 是一个国家,所以第二个 Tuple 的第二个 Member 也必须是一个国家名,依次类推。 5.3. MDX 查询语句 一个标准的 MDX 查询语句就是由我们前面介绍的 MDX 的三个基本对象构成,也就是 Member 、 Tuple 、 Set 。 一个标准的 MDX 查询的语法如下: SELECT Set ON COLUMNS, Set ON ROWS FROM Cube WHERE Tuple 示例: SELECT {[time].[ 1997],[time].[1998]} ON COLUMNS, {([product].[drink],[customer].[gender].[F]),( [product].[food],[customer].[gender].[M])} ON ROWS FROM [Sales] WHERE ([Measures].[ StoreSales ]) 这个 MDX 查询就表示:查询时间为 1997 和 1998 两年的 drink 类产品,女消费者和 food 类产品男消费者的 Store Sales 。 5.4. MDX 表达式 5.4.1. children 它的作用是列出指定分类下的所有项,如 1. [product type].[food].children ,这就表示列出产品类型为 food 的所有产品。 2. [region ].[country].children ,这就表示列出所有的国家名称。 该函数不能用在 Tuple 中 5.4.2. CurrentMember 当前某个 Member ,举例: 某个产品销售额贡献度计算,对于某一个产品或一种类型的产品而言它的销售额贡献度指的是它的销售额与所有产品销售额的比值,此时,如果我们要用 MDX 来计算这个贡献度的值是可以采用 CurrentMember 来实现,如: 此时我们的 MDX 表达可以是: ([product].currentMember ,[ Measures].[stores sales]) / ([product].[ all products],[Measures].[stores sales]) 同时因为默认情况下指的就是 currentMember ,所以上面的 currentMember 可以去掉: ([Measures].[ stores sales]) / ([product].[ all products],[Measures].[stores sales]) 所有 MDX 表达式的写法是由若干个 Tuple 组成 ,比如上面的这个表达式就是由两个 Tuple 的相除构成。 5.4.3. prevMember 和 nextMember 这两个元素分别指的是当前 Member 的上一个 Member 和当前 Member 的下一个 Member 。 利用这两个元素我们可以来实现实际当中常见的同期比(前期比),所谓的同期比指的 是: (当前 member- 当前 member 的前一个 member ) / 当前 member 的前一个 member 对应到 MDX 表达式我们可以用 prevMember 和 nextMember 来实现,如: (([time].currentMember ,[ Measures].[store sales])-([time].prevMember ,[Measures].[storessales ])) / ([time].prevMember ,[ Measures].[store sales]) 当然因为 currentMember 可以省略,所以上面的写法也可以是: (([ Measures ].[store sales])-([time].prevMember ,[Measures].[storessales ])) / ([time].prevMember ,[ Measures].[store sales]) 5.4.4. Parents 、 FirstChild 、 Descendants 下面的这张图就显示一个树 这张图中 all 这个节点是 97 和 98 的 parents , 97 和 98 也是 all 的 children ,同时 97 是 all 的 firstChild 如果我们要取到 97 下的所有的月份,那么我们就需要用 Descendants 来实现,它的语法是: Descendants( [time].[97],month) ,这里的 month 是一个 level 的名称。所有它的格式为: Descendants([ 一个 Member], 一个 level 的名称 ) 比如在食品销售当中,我们要知道哪一类的食品更受消费者欢迎,这样我们需要只知道各类食品的销量,比如食物( food )、饮料 (drink) 等的具体销量 (unit sales) ,然后再计算出所有食品总的销量( total sales ) , 如果采用 MDX 我们可以很容易的实现,采用 MDX 后的计算哪种食品更受欢迎的表达式如下: ([food].currentMember ,[ Measures].[unit sales]) / ([food].currentMember.parent ,[ Measures].[total sales]) 因为 currentMember 可以省略,所以上面的写法又可以是: ( [ Measures].[unit sales]) / ([food].currentMember.parent ,[ Measures].[total sales]) 5.5. 参见MDX的基本语法及概念.pdf 6. 常见问题 6.1. MDX编辑器中文乱码  web.xml中添加过滤器 <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>com.tonbeller.wcf.charset.CharsetFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 注意,该filter-mapping放在所有filter-mapping的最前面  jsp页面编码用UTF-8(testpage.jsp) 6.2. pdf中文显示“#” 1).在WEB-INF\jpivot\print目录下建立userconfig.xml文件。内容如下:(仅配置黑体,fontBaseDir属性我也没有配置,源码中有) <configuration> <fonts> <font metrics-file ="simhei.xml" kerning ="yes" embed-file ="simhei.ttf"> <font-triplet name ="SimHei" style ="normal" weight ="normal"/> <font-triplet name ="SimHei" style ="normal" weight ="bold"/> <font-triplet name ="SimHei" style ="italic" weight ="normal"/> <font-triplet name ="SimHei" style ="italic" weight ="bold"/> </font> </fonts> </configuration> 2). 下载Apache的FOP包,应用所需JAR包,生成simhei.xml。Java命令行为: java -cp D:\op\fop.jar;D:\op\avalon-framework-4 .2.0.jar;D:\op\commons-logging-1.0.4.jar;D:\op\commons-io-1.1.jar;D:\op\xmlgraph ics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader C:\WINDOWS\Fonts\simhei. ttf simhei.xml 3). 将simhei.xml,以及simhei.ttf文件放到WEB-INF\jpivot\print目录下。 4 ). 修改WEB-INF\jpivot\table目录下的fo_mdxtable.xsl文件,把所有的font-family对应成SimHei,(以SimHei开头)。 6.3. pdf格式修改(原格式行太宽) 修改jpivot\WebRoot\WEB-INF\jpivot\table\fo_mdxtable.xsl 中font-size,line-height,padding 6.4. 钻取数据的格式化 在利用jpivot钻取的时候,发现出来的数字数据都精确到了小数点后两位,我可不想所有数字都这么精确,连带出来的id值也被这样格式化了,悲惨! 我的解决方法:取消格式定义 找到wcf.jar,修改com.tonbeller.wfc.format.config.xml 删除double和nandouble的定义 6.5. mondrian 的志的配置 将log4j.xml放置到web-inf/classes下 文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!-- ================================================== =================== --> <!-- --> <!-- Log4j Configuration --> <!-- --> <!-- Default log configuration file for the Workbench. --> <!-- Copied to the user home directory, where the user can change --> <!-- settings for their own purposes. --> <!-- --> <!-- Sends log messages to the console and the workbench.log file --> <!-- in the user's home directory. --> <!-- --> <!-- ================================================== =================== --> <!-- $Id: //open/mondrian/log4j.xml#2 $ --> <!-- | For more configuration infromation and examples see the Jakarta Log4j | owebsite: http://jakarta.apache.org/log4j --> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <!-- ================================= --> <!-- Preserve messages in a local file --> <!-- ================================= --> <!-- A size based file rolling appender, capturing everything --> <appender name="FILE" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="e:/workbench.log"/> <param name="Append" value="false"/> <param name="MaxFileSize" value="500KB"/> <param name="MaxBackupIndex" value="1"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> </layout> </appender> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <!-- 设置监视器输出方式 --> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" /> </layout> </appender> <!-- ============================== --> <!-- Append messages to the console --> <!-- ============================== --> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <param name="Threshold" value="WARN"/> <layout class="org.apache.log4j.PatternLayout"> <!-- The default pattern: Date Priority [Category] Message\n --> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> </layout> </appender> <!-- ================ --> <!-- Limit categories --> <!-- ================ --> <!-- Limit the org.apache category to INFO as its DEBUG is verbose --> <category name="org.apache"> <priority value="INFO"/> </category> <category name="com.tonbeller"> <priority value="WARN"/> </category> <category name="mondrian.rolap"> <priority value="WARN"/> </category> <category name="mondrian.gui"> <priority value="WARN"/> </category> <category name="mondrian.sql"> <priority value="DEBUG"/> </category> <category name="mondrian.mdx"> <priority value="DEBUG"/> </category> <!-- ======================= --> <!-- Setup the Root category --> <!-- ======================= --> <root> <priority value="INFO"/> <appender-ref ref="FILE"/> <appender-ref ref="STDOUT" /> </root> </log4j:configuration> 6.6. schema workbench schema的编辑器,界面化编辑schema。 但不知道为什么,在我的本机上,在打开,新建schema文件,都非常慢。 可以到http://sourceforge.net/projects/mondrian/files/下载,最新版本psw-ce-3.2.1.13885 7. 参考资料 http://mondrian.pentaho.com/documentation/ mondrian的官方网站 http://jacky6024.javaeye.com/ 比较有用的中文资料

2011-12-09

最全的FreeMarker中文文档.pdf

最全的FreeMarker中文文档

2011-12-09

20个绝对经典的电脑技巧.txt

4.让Windows XP也能刻ISO文件   Windows XP没有提供直接刻录ISO文件的功能,不过你可以下载一个第三方插件来为系统增加这个功能。该插件的下载地址为:http://members.home.net/alexfein/is...rderSetup.msi。 5. 登陆界面背景变变色   打开注册表编辑器,业絒HKEY-USERS\.DEFAULT\Control Panel\Colors],将Background的值改为“0 0 0”(不带引号),这样登录背景就成了黑色。 6.完全卸载XP   有些朋友在安装Windows XP后发现自己并不喜欢这个操作系统,这时你可以用Windows 98安装光盘启动到DOS状态,然后键入:  format -ur   这样可以删除所有XP的文件,并可重新安装Windows 98/Me。 7. 系统救命有稻草  当怀疑系统重新启动之前针对计算机所进行的更改可能导致故障,可以在启动系统时按F8键,选择“最后一次正确的配置”来恢复对系统所做的更改。 8. 恢复硬件以前的驱动程序   在安装了新的硬件驱动程序后发现系统不稳定或硬件无法工作时,只需在“设备管理器”中选择“驱动程序恢复”按钮,即可恢复到先前正常的系统状态。但不能恢复打印机的驱动程序。 9. 自动登陆   单击开始→运行,输入“rundll32 netplwiz.dll,UsersRunDll”(不带引号),然后在User Accounts中取消“Users must enter a user name and password to use this computer”,单击“OK”,接着在弹出的对话框中输入你想自己登陆的用户名和密码即可。 10.快速关机或重启的快捷键(可定时)   在桌面点击鼠标右键,选择新建(快捷方式,在弹出的向导中输入位置为:C:\WINDOWS\system32\shutdown.exe -s -t 10(其中的-s可以改为-r,也就是重新启动,而-t 10表示延迟10秒,你可以根据自己的需要更改这个数字)。制作完这个快捷键后,按照上面的方法为它指定一个图标。这个快速关机或重启的技巧会显示一个比较漂亮的对话框提示关机(重启),而且你可以在后面加上“-c "我要关机啦!"”,这样这句话会显示在对话框中,当然文字你可以随意写,但要注意不能超过127个字符。 11.关

2011-12-09

最新bugzilla安装.doc

一. 准备  bugzilla压缩包  2003操作系统  虚拟机压缩包 二. 安装MYSQL 2.1安装MYSQL 1. 执行MYSQL下的setup.exe 2. 选择自定义安装。 3. 安装路径设为 c:\mysql,因为在Bugzilla的Checksetup.pl中默认Mysql安装在C:\mysql。 4. 开始安装,下一步至创建MySQL帐户,选择“Skip Sing-Up”,跳过MySQL.com网站帐户的注册。下一步至完成。 5. 点击“Next”,下一步默认至下图。选择复选“Include Bin Directory in Windows PATH”,将MySQL的bin目录包含进Windows的PATH环境变量中,下一步。 6. 输入root用户的密码,例:123123,如果需要远程访问,复选“Enable root access from remote machines”,下一步至安装完成。 2.2配置MYSQL 1. 开始->所有程序->mysql->mysql 5.0->MySQL Server Instance Config Wizard,设置mysql,输入刚才设置的MYSQL密码“123123”。 2. 我们需要在mysql中创建Bugzilla的用户以及数据库,主要三条命令为: a、建立数据库bugs 。命令:create database bugs; b、查询数据库。命令:show databases; c、建立用户bugs,密码为空,对Bugs数据库具有一定权限 命令:GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE, LOCK TABLES,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY '123'; d、从 mysql 数据库授权表中重新装载权限。命令:FLUSH PRIVILEGES; 3. 退出。命令:quit 4. 此时,建立了的数据库名为Bugs,数据库用户名为Bugs,密码为空 三. 安装Activeperl和perl模块(bugzilla所需的) 将Perl文件夹所有信息复制到c盘根目录下,在系统变量Path中增加自己的 C:\perl\bin路径信息:右击我的电脑-〉属性-〉高级-〉环境变量-〉path->添加:,;c:\perl\bin\; 四. 复制Bugzilla文件夹 将bugzilla文件夹复制到c盘根目录下。(IIS的虚拟目录需要指向该目录)。 五. 安装IIS(略)和配置IIS 1. 右击“默认网站”,选择新建“虚拟目录”。别名输入“bugzilla”,路径选择C:\bugzilla,权限全部勾选,下一步至完成。 2. 右击虚拟目录,选择属性,选择“配置”按钮添加应用程序扩展名映射。 格式如下:\perl.exe -x -wT "%s" %s 可执行文件:c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s 扩展名:.cgi 动作:全部动作 启动默认文档添加为:index.cgi 3. 选择WEB服务扩展,允许“所有未知CGI扩展” 和 “Active Server Pages” 。 六. 安装邮件接收服务器和邮件发送服务器 1. 首先,安装SMTP服务和POP3服务,控制面板---添加删除程序---添加/删除windows组件中: 选择“电子邮件服务器”;“应用程序服务器”的详细信息—选择IIS---详细信息----选择SMTP 2. 点击“所有程序---管理工具---POP3服务”。单击“新域”,输入域名如:z109.com。 3. 双击z109.com,选择添加邮箱,添加2个邮箱并设置密码,注意不需要写域名 此处建立2个邮箱:one和two 4. 进入OUTLOOK配置,姓名随意输入,下一步电子邮箱地址输入刚才创建的第一个邮箱地址:[email protected]。下一步电子邮件服务器名输入服务器IP(此处为虚拟机IP) 下一步INTERNET邮箱登陆,输入密码 5. 用此邮箱发邮件给第二个邮箱,查看“POP3服务”内已显示一条新邮件。 6. 同样在OUTLOOK里添加第二个邮箱,给第一个邮箱发邮件,可查看,同时“POP3服务”内有相应变化,邮件服务器配置完毕。 七. 配置bugzilla 1. 开始---运行输入cmd,进入DOS仿真器。进入BUGZILLA目录,输入命令:cd \bugzilla 2. 键入:perl checkset

2011-12-09

全面学习分区表及分区索引-Oracle.pdf

全面学习分区表及分区索引-Oracle.pdf

2011-12-09

CKFinder-2.0.2.1.jar

CKFinder-2.0.2.1.jar

2011-12-09

abdera-extensions-json-0.4.0-incubating.jar

abdera-extensions-json-0.4.0-incubating.jar

2011-12-09

abdera-core-0.4.0-incubating.jar

abdera-core-0.4.0-incubating.jar

2011-12-09

oracle 10G卸载

oracle 10G卸载oracle 10G卸载oracle 10G卸载oracle 10G卸载

2011-04-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除