当前位置:  数据库>其它
本页文章导读:
    ▪将表空间、数据文件从ASM迁移到文件系统      1.2.1. 表空间、数据文件迁移-从ASM到文件系统 RMAN> backup as copy datafile 5 format'/u01/oracle/10g/oradata/gt10g/gtlions01.dbf';   Starting backup at 25-FEB-13 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy .........
    ▪mysql监控管理工具--innotop      author:skate time:2013/02/25 mysql监控管理工具--innotop   INNOTOP是一个通过文本模式显示MySQL和InnoDB的监测工具。INNOTOP是用PERL语言写成的,这使它能更加灵活的使用在各种操作平台之上,它能详.........
    ▪开发框架: 双刃剑                现代应用程序再也不会从第一个字节写起了。 使用现有的开发框架和组件,能够充分利用软件的杠杆效应, 以更小的代价更快地构建应用程序,这诚然值得鼓.........

[1]将表空间、数据文件从ASM迁移到文件系统
    来源: 互联网  发布时间: 2013-11-07
1.2.1. 表空间、数据文件迁移-从ASM到文件系统

RMAN> backup as copy datafile 5 format'/u01/oracle/10g/oradata/gt10g/gtlions01.dbf';

 

Starting backup at 25-FEB-13

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

input datafile fno=00005 name=+DATA01/gt10g/datafile/gtlions.258.808326729

outputfilename=/u01/oracle/10g/oradata/gt10g/gtlions01.dbf tag=TAG20130225T152239recid=121 stamp=808327359

channel ORA_DISK_1: datafile copy complete,elapsed time: 00:00:01

Finished backup at 25-FEB-13

 

RMAN> backup as copy datafile 6 format'/u01/oracle/10g/oradata/gt10g/gtlions02.dbf';

 

Starting backup at 25-FEB-13

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

input datafile fno=00006name=+DATA01/gt10g/datafile/gtlions.265.808326737

outputfilename=/u01/oracle/10g/oradata/gt10g/gtlions02.dbf tag=TAG20130225T152247recid=122 stamp=808327367

channel ORA_DISK_1: datafile copy complete,elapsed time: 00:00:01

Finished backup at 25-FEB-13

 

RMAN> switch datafile 5 to copy;

 

datafile 5 switched to datafile copy"/u01/oracle/10g/oradata/gt10g/gtlions01.dbf"

 

RMAN> switch datafile 6 to copy;

 

datafile 6 switched to datafile copy"/u01/oracle/10g/oradata/gt10g/gtlions02.dbf"

 

RMAN> sql 'alter tablespace gtlions online';

 

sql statement: alter tablespace gtlions online

 

RMAN> report schema;

 

Report of database schema

 

List of Permanent Datafiles

===========================

File Size(MB) Tablespace           RB segs Datafile Name

---- -------- -------------------- -------------------------------

1   440      SYSTEM               ***     /u01/oracle/10g/oradata/gt10g/system01.dbf

2   25       UNDOTBS1             ***     /u01/oracle/10g/oradata/gt10g/undotbs1.dbf

3   250      SYSAUX               ***     /u01/oracle/10g/oradata/gt10g/sysaux01.dbf

4    5        USERS                ***     /u01/oracle/10g/oradata/gt10g/users01.dbf

5   10       GTLIONS              ***    /u01/oracle/10g/oradata/gt10g/gtlions01.dbf

6   10       GTLIONS              ***     /u01/oracle/10g/oradata/gt10g/gtlions02.dbf

 

List of Temporary Files

=======================

File Size(MB) Tablespace           Maxsize(MB) Tempfile Name

---- -------- -------------------- -------------------------------

1   100      TEMP                 100         /u01/oracle/10g/oradata/gt10g/temp01.dbf

4   100      GTLIONSTEMP          100        /u01/oracle/10g/oradata/gt10g/gtlionstemp01.dbf

 

SQL> Select ts#,Name From v$tablespace WhereName='GTLIONS'

  2  Union All

  3  Select file#,Name From v$datafile Wherets#=7;

 

TS# NAME

--- --------------------------------------------------

  7 GTLIONS

  5/u01/oracle/10g/oradata/gt10g/gtlions01.dbf

  6/u01/oracle/10g/oradata/gt10g/gtlions02.dbf

-The End-

作者:gtlions 发表于2013-2-25 16:58:53 原文链接
阅读:0 评论:0 查看评论

    
[2]mysql监控管理工具--innotop
    来源: 互联网  发布时间: 2013-11-07

author:skate
time:2013/02/25

mysql监控管理工具--innotop

 

INNOTOP是一个通过文本模式显示MySQL和InnoDB的监测工具。INNOTOP是用PERL语言写成的,这使它能更加灵活的使用在各种操作平台之上,它能详细的的监控出当前MYSQL和INNODB运行的状态,以DBA根据结果,可以合理的优化MYSQL,让MYSQL更稳定更高效的运行。


1.innotop安装
参考官网:http://innotop.googlecode.com/svn/html/installing.html

# wget http://innotop.googlecode.com/files/innotop-1.9.0.tar.gz
# tar -zxvf innotop-1.9.0.tar.gz
# cd innotop-1.9.0

安装INNOTOP工具非常简单,其是由PERL写的,当然需要PERL环境和相关的工具包。在安装之前先要确定你的系统安装了Time::HiRes,Term::ReadKey,DBI,DBD::mysql这四个包

# perl -MCPAN -eshell
CPAN> install Time::HiRes
CPAN> install Term::ReadKey
CPAN> install DBI
CPAN> install DBD::mysql

 

在解压缩后的源码路径下有安装帮助文件,如下:

# perl Makefile.PL

如果没有报错,然后,使用
# make install

这样就安装 innotop,安装之后系统就会多出一个命令,innotop

得到帮助
# innptop --help


2.使用方法
参考官网:http://innotop.googlecode.com/svn/html/manual.html

使用方法:
# innotop -uroot -proot -h127.0.0.1

[root@racdb2 innotop-1.9.0]# innotop -uroot -proot -h127.0.0.1
[RO] Dashboard (? for help)                            127.0.0.1, 3h, 0.06 QPS, 2/1/0 con/run/cac thds, 5.1.67-log
Uptime  MaxSQL  ReplLag  Cxns  Lock  QPS   QPS  Run  Run  Tbls  Repl  SQL
    3h                      2     0  0.06                   13  Off    

输入“?”得到帮助

Switch to a different mode:
   A  Dashboard         I  InnoDB I/O Info     Q  Query List
   B  InnoDB Buffers    K  InnoDB Lock Waits   R  InnoDB Row Ops
   C  Command Summary   L  Locks               S  Variables & Status
   D  InnoDB Deadlocks  M  Replication Status  T  InnoDB Txns
   F  InnoDB FK Err     O  Open Tables         U  User Statistics

Actions:
   d  Change refresh interval        p  Pause innotop
   k  Kill a query's connection      q  Quit innotop
   n  Switch to the next connection  x  Kill a query

Other:
 TAB  Switch to the next server group   /  Quickly filter what you see
   !  Show license and warranty         =  Toggle aggregation
   #  Select/create server groups       @  Select/create server connections
   $  Edit configuration settings       \  Clear quick-filters
Press any key to continue


可以用innotop监控mysql,例如可以看当前正在运行的sql,并查看执行计划,如下:

进入innotop时,按shift+q进入sql查询列表,

When   Load  Cxns  QPS   Slow  Se/In/Up/De%  QCacheHit  KCacheHit  BpsIn  BpsOut
Now    0.10     2  0.46     0   0/ 0/ 0/ 0       0.00%    100.00%  19.79    1.11k
Total  0.00   151  0.08     5   2/ 0/ 0/ 0       4.17%    100.00%   3.29  223.67

Cmd    ID      State         User   Host           DB      Time   Query                             
Query       1  Sending data  root   localhost      test    03:20  insert into user select * from user
Query      21  Locked        root   localhost      test    00:04  insert into user select * from user
Select a thread to analyze: 21

然后按e并输入thread ID显示执行计划或者按f显示完整sql语句,或者按o显示系统优化过的语句(需要MySQL的版本支持EXPLAIN EXTENDED)


EXPLAIN PARTITIONS
select * from user
____ Sub-Part 1 _____
Select Type: SIMPLE 
      Table: user   
 Partitions:        
       Type: ALL    
 Poss. Keys:        
      Index:        
 Key Length:        
  Index Ref:        
  Row Count: 41943040
    Special:        

[This query has been re-written to be explainable]

Press e to explain, f for full query, o for optimized query


 innotop是通过information_schema.processlist来获得完整的sql语句,并且根据COMMAND来过滤掉空闲线程的

 

---end---

 

 

作者:wyzxg 发表于2013-2-25 16:21:13 原文链接
阅读:50 评论:0 查看评论

    
[3]开发框架: 双刃剑
    来源: 互联网  发布时间: 2013-11-07


         现代应用程序再也不会从第一个字节写起了。 使用现有的开发框架和组件,能够充分利用软件的杠杆效应, 以更小的代价更快地构建应用程序,这诚然值得鼓舞,但也有一些注意事项:

       1.   使用开发框架, 并不是没有代价的。只是将开发和测试基础设施的成本转移到学习、使用和维护成本上。为了使学习和使用成本远低于开发和测试基础设施的成本,最大化复用框架和组件的益处, 这就要求, 尽可能选择优质、可靠的组件和框架,适应项目的需求, 而不要随意拍板,结果中途更换,导致大量中期或后期成本,得不偿失;  此外, 选择的框架和组件的学习和使用成本应该尽可能低一点;

       2.   使用开发框架通常是“所得”远超出预期,本来只需要一个轮胎, 却给了一辆完整的车。 虽然依靠经过仔细测试的框架比手工重新开发要强一些, 但往往框架也带来了一些意料之外的复杂性。 当框架相关的部分出问题时,调试是一件很棘手的事情。


       如何调试框架交互的问题呢?   ( 关于软件调试的基本方法和技巧, 详见 《谈点软件调试》 )

       我最近遇到一两例,初步总结的方法是:  源码 + 关键断点 + 单步调试 + 大胆猜测和定位 + 验证 + 耐心。


        我遇到的问题是这样的。项目使用 Spring + Hibernate + proxool 实现数据库连接管理和访问。 需求是实现多数据源的动态配置和加载使用。 思路是:

          1.   用一个类  AdvancedDataSourceInitizer 实现 ApplicationContextAware 接口,当发布 ContextRefreshEvent 事件时, 从数据库中读取数据库配置,转化为 ProxoolDataSource 对象,并存入到一个 Map<dataSourceName, ProxoolDataSource> 中;    

          2.  用一个类 SpringEventPublisher 实现 ApplicationListener 当应用启动时,以及增删更新数据库配置时, 发布 ContextRefreshEvent 事件, 触发动态加载数据源的行为;

          3.  用一个类MapDataSource 继承 AbstractRoutingDataSource 来定位和切换数据源。

          上述三个类的BEAN实例都可以直接配置在Spring 文件中。


          可是在实际使用中,却无法正确切换数据源,总是只能切换到第一个使用的数据源。 后经查证, 发现必须设置 Proxool 别名,及连接数。

           public static ProxoolDataSource cluconfig2DataSource(ClusterConfig cc)  {

                       ProxoolDataSource pds = new ProxoolDataSource();

                       pds.setDriverUrl(/blog_article/index.html);

                       ...    

                       pds.setAlias(cc.getDataSource());   // 必须有这一行及下面几行, 否则难以起作用。

                       pds.setMinimumConnectionCount(5);

                       pds.setMaximumConnectionCount(50);

                       pds.setPrototypeCount(10);   

           }  


        整个调试过程如下:

        首先,前提是准备好源码,可以使用 Eclipse 的 MAVEN 插件下载。选中指定的JAR包,右键 Maven ---> Download sources ,放在指定 \.m2\repository 目录下。 Windows 下一般放在 Documents and settings\用户目录\.m2\repository\ ;  Linux 下一般放在 ~/.m2/repository/ 。 当单步调试时,若缺乏相应类的源码包, 会出现 Source Look up 界面及按钮, 点击添加源码包之后,该界面就会变成相应类的源码界面。建议使用项目构建工具 Maven  等,而不是手工从官网上搜索下载。

        由于框架交互的代码很多地方都可能出问题,因此, 只能采用单步调试; 但一行行执行太慢, 因此, 需要根据出错特征进行分析,设置一些关键断点。比如,这里的关键点有: 设置 dataSourceName 的地方(验证确实传入了正确的数据源的 key ),  获取 DataSource的地方(验证确实定位得到了相对应的数据源对象),获取 Connection 的地方(验证确实获得了正确的数据库连接)等。注意,使用 Debug 模式运行,就是有小虫的那个图标,而不是右箭头图标。 通过单步调试,可以知道获取 proxool 数据库连接的具体过程如下(画成UML序列图更佳):

        DataSourceHolder.setDataSource(dataSourceName) --->  AbstractRoutingDataSource.determineTargetDataSource(dataSourceName) ---> ProxoolDataSource ---> ProxoolDataSource.getConnection() ---> ConnectionPool.getConnection() ---> proxyConnections.getConnection(nextAvailableConnection)

      发现在这里抛出了 IndexOutOfBoundsException 异常。 proxyConnections 中并未含有刚刚切换的数据源的连接,而我假定的是, 应该由 Proxool 自动预先创建若干个连接放在相应连接池里面的。 在代码里设置了连接数后,成功了; 其后还出现一次类似错误, 是通过设置别名而解决的。

        因为假定Proxool 会预先自动创建默认连接数的(静态配置文件中没有设置连接数是可用的,网上诸多文章也讲到存在默认连接数的),并且以为别名是无关紧要的, 没想到在这里出了错。 所以说,不能随便作假设,但 Proxool 切换数据源依赖于别名,这一点也挺让人吃惊。

   

       调试框架交互的问题还需要耐心。 因为出错的具体地方可能分布在任何意料之外的位置, 有可能在认为不相关的地方直接跳过了, 需要返回去再定位之前的位置,反复如此,直到一步步接近出错的位置。比如,开始在定位问题的时候, 并没有做很详细的分析,而是较随意地单步加跳跃执行,从 Spring 源码跳转到 Proxool 的源码 跳转到  Hibernate 的源码再跳回到 Spring , 不亦乐乎, 后来终于发现了一点小线索,逐步缩小范围,最终定位到问题所在。 今天一整天的功夫就用来调试切换数据源所出现的这两个问题。这多少说明, 使用开发框架会增大调试的难度, 增加一些维护的成本。


       主要收获是: 终于成功调试了一个关于框架交互的问题,有一种“跨越框架”的感觉,:) —— 调试业务逻辑代码的 BUG 都不在话下了。


        如何选用合适的框架呢? 

        1.   项目需求是最关键的考虑。 当然, 有时候, 不一定能很容易根据需求确定该使用哪种开发框架;

        2.   选择主流、优质、可靠的开发框架,学习和使用都更有益处;

        3.   阅读关于开发框架优缺点对比的文章,一方面了解特定的框架作出决定,另一方面亦可增加关于技术选型方面的知识;

        4.   可能暂时使用何种框架区别不大, 但公司内部出于统一框架的使用和维护成本的考虑;

        5.   最后,依然需要丰富的实际经验作为指导。 



 

作者:shuqin1984 发表于2013-2-25 21:12:10 原文链接
阅读:19 评论:0 查看评论

    
最新技术文章:
▪gc buffer busy/gcs log flush sync与log file sync    ▪让你的PL/SQL更好用    ▪ADO.NET中的非脱机数据库查询
▪参数job_queue_processes与Oracle jobs    ▪11gR2游标共享新特性带来的一些问题以及_cursor...    ▪_library_cache_advice和latch:shared pool、latch:shared poo...
▪SQL: Date Utility    ▪DB2 分区表增加分区    ▪DB2第一步 — 创建表
▪oracle 数据库    ▪插入10万条记录测试    ▪rebuild index VS. rebuild index online
▪如何处理undo tablespace 表空间太大的问题    ▪ado执行存储过程中包含结果集获取输出参数为...    ▪oracle函数的demo
▪Entity Framework 学习建议及自学资源    ▪存储过程的编写    ▪Linux/Unix shell 自动发送AWR report(二)
▪第二章 Oracle恢复内部原理(基础数据结构)    ▪Redis源码学习之【Tcp Socket封装】    ▪Java Jdbc减少与Oracle之间交互提升批量处理性能...
▪南大通用GBase8a Vs Oracle11g 单机测试亲测    ▪oracle 中行列转换    ▪rhel下安装oracle10g+asm---测试环境搭建
▪Redis系列-主从复制配置    ▪MySQL索引与查询优化    ▪INDEX受到NULL值的影响
▪测试人员的SQL语言 系列    ▪SQL数据库基本语句    ▪MySQL Replication常见错误整理[持续更新...]
▪eclipse下建立esper的demo    ▪把oracle rac 转化为单机数据库    ▪Redis系列-存储篇sorted set主要操作函数小结
▪基本的SQL*Plus报表和命令    ▪druid简单教程    ▪11g调度--scheduler使用
▪EF基础一    ▪db2存储过程中循环语句while do的continue有没有...    ▪oracle 创建DBLINK
▪DB2数据库备份还原    ▪Warning: prerequisite DBD::mysql 1 not found错误解决方...    ▪innotop性能监视mysql,innodb工具
▪数据迁移:DataGuard配置    ▪QX项目实战-19.跨库数据同步    ▪Mysql EXPLAIN
▪Oracle 11g AWR 系列七:Active Session History (ASH) 报...    ▪Oracle 11G新特性(共36个)    ▪父子节点问题
▪OEM简介及按钮乱码问题    ▪NoSql之MongoDB的常用类管理    ▪ORA-39700: database must be opened with UPGRADE option
▪node.js 访问redis数据库,pub/sub    ▪使用DBMS_REDEFINITION在线重定义分区表    ▪SQL Developer 使用问题与解决方法汇总
▪oralce 11g dataguard 概念    ▪ORA-30004 错误处理    ▪oracle分组函数rollup,cube
▪Sql Developer 使用问题与解决方法汇总    ▪Configure Oracle Dataguard Primary-ASM to Physical-ASM    ▪Oracle Data Guard 理论知识
▪Control File 恢复    ▪Oracle数据文件收缩    ▪Oracle 11g AWR 系列五:如何生成 AWR 报告?
▪Wireshark数据包分析实战(第2版)    ▪MySql用户权限控制    ▪db2和oracle查询序列区别
▪更新blob字段的存储过程    ▪MySQLReport分析报告三    ▪DB2中的序列
▪Oracle中DBMS_RANDOM.STRING 的用法    ▪SQL SERVER无法安装成功,sqlstp.log文件提示[未发...    ▪Data Guard 部署物理备库的 10 大注意事项
▪万能数据库查询分析器使用技巧之(九)    ▪SQL 自定义Split函数    ▪视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的...
▪Data Guard Standby_archive_dest 和 Log_archive_dest_n 的...    ▪机房收费系统数据库设计(一)    ▪利用putty的SSH tunnel连接Oracle
▪DBCA建库偶遇ORA-27125    ▪使用PowerPivot建立简单的分析模型    ▪Linux/Unix shell 自动发送AWR report
▪写入到blob字段的存储过程    ▪关于JDBC中ResultSet接口的一点细节探究    ▪Data Guard 配置 Standby Redo Log
▪linux下redis的安装    ▪windows下redis的安装    ▪手动创建数据库步骤(简单翻译官方文档)
▪Ubuntu安装Mongodb    ▪SQL CLR应用    ▪redis的配置文件参数--详细说明
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3