.mybashrc
1 | # bash |
===
[erq]
1 | # bash |
===
[erq]
Postgres-X2试图融合Postgres-XC和Postgres-XL。
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture。
Postgres-XC(eXtensible Cluster)是基于无共享架构的多主节点、写性能扩展PostgreSQL集群。主要的特性有:写性能扩展,多主节点同步,对应用程序透明,就像使用传统的PostgeSQL一样,等等。但其没有sharding机制,只是对称多主节点集群,提高写性能和可用性。
Postgres-XL是一个通用的 ACID 、开源的、可方便进行水平扩展的、擅长OLTP 写频繁的业务、 SQL 数据库解决方案。衍生自PostgreSQL数据库。
shutdown immediate有时候会长时间挂起(hang),一般是因为在等待某些进程关闭。
不要轻易尝试shutdown abort,shutdown abort之后启动时,需要进行实例恢复,容易出现问题。
据说startup force会中止当前数据库的运行,并开始重新正常的启动数据库,没试过,最好也不好尝试。
最佳的办法还是找到等待的进程,将其kill之后,再行shutdown immediate。
References:
[1]oracle shutdown 没有反应
[2]Oracle shutdown immediate无法关闭数据库解决方法
[3]oracle shutdown immediate 一直没反应解决方案
===
[erq]
本来DG已经配置为最大可用模式(maximize availability)了,也就是说如果物理备库无法访问,不应该影响主库的运行才对。
但是有一条光纤物理链路出现故障严重丢包,导致主库向其传输归档日志时出现超时错误,无法归档,导致主库运行十分缓慢,直至无法正常访问。
alert_orcl.log文件中有如下错误记录:
1 | Fri Jul 17 00:34:32 2015 |
这错误从早上0点多就出现了。
trace文件中有如下错误:
1 | *** 2015-07-17 00:34:32.348 57480 kcrr.c |
按官方文档讲,DG最大可用模式下备库不可用是可以自动降级到最大性能模式的,但这次没有,主库的运行受到了影响。
因为物理链路修复没有时间表,因此当务之急时先略过或禁用出故障的备库。
首先尝试将DG降级到最大性能模式:
[sql]
SQL>alter database set standby database to maximize performance;
[/sql]
无果
禁用出故障的备库:
[sql]
SQL>alter system set log_archive_dest_state_3 = defer;
SQL>shutdown immediate
SQL>startup
[/sql]
故障解除。而且需要重新启动数据库。
LOG_ARCHIVE_DEST_STATE_n参数,可以取值alternate reset defer enable,其含义如下:
alternate
备用。只有当其他归档目标失效时才尝试使用本归档目标。
defer
保留配置信息,但从归档目标中删除,直到重新启用。
enable
启用。这是默认值。
*UPDATE(06/05/2016):**
在未禁用有网络故障的standby备库的情况下,如果重新启动数据库,有可能startup过程会一直卡在Database mounted.处
从alert.log看,主库正在向有网络故障的备库同步归档日志文件,因为网络不通畅就卡住了,此时将备库禁用后,重新启动数据库就可以了。
====
[erq]
主要的浏览器平台都已经支持promise了,当然IE还不行,但是Edge支持。
标准化的web客户端存储,除了传统的cookie,现在还有Web Storage(LocalStorage, SessionStorage)和IndexedDB可用,而Web SQL已被废弃. 各大浏览器对Web Storage的支持度更高.
属性
在HTML中,除了图片、超链接以及被选中区域,其它元素默认是不可拖拽的。因此如果要其他类型元素可以被拖拽,就需要设置元素的draggable属性为true。
draggble是属性而不是样式,所以并不能用CSS来设置。
事件
一个完整的拖拽,总共会触发七种类型的事件。
当一个元素开始被拖拽的时候触发。用户拖拽的元素需要附加dragstart事件。在这个事件中,监听器将设置与这次拖拽相关的信息,例如拖动的数据和图像。
当拖拽中的鼠标第一次进入一个元素的时候触发。这个事件的监听器需要指明是否允许在这个区域释放鼠标。如果没有设置监听器,或者监听器没有进行操作,则默认不允许释放。当你想要通过类似高亮或插入标记等方式来告知用户此处可以释放,你将需要监听这个事件。
当拖拽中的鼠标移动经过一个元素的时候触发。大多数时候,监听过程发生的操作与dragenter事件是一样的。
当拖拽中的鼠标离开元素时触发。监听器需要将作为可释放反馈的高亮或插入标记去除。
这个事件在拖拽源触发。即在拖拽操作中触发dragstart事件的元素。
这个事件在拖拽操作结束释放时于释放元素上触发。一个监听器用来响应接收被拖拽的数据并插入到释放之地。这个事件只有在需要时才触发。当用户取消了拖拽操作时将不触发,例如按下了Escape(ESC)按键,或鼠标在非可释放目标上释放了按键。
拖拽源在拖拽操作结束将得到dragend事件对象,不管操作成功与否。
其中在被拖拽对象上触发的事件有:
dragstart,drag和dragend
而在目标对象上触发的事件有:
dragenter, dragover, dragleave和drop。是不是和mouseenter,mouseover,mouseleave比较像。
对象
拖放操作的核心对象是DataTransfer对象,由拖拽事件的dataTransfer属性来引用,只有在拖拽事件内部,此对象才是有效的。
被拖拽元素和目标元素通过DataTransfer对象来传输数据,一般在被拖拽元素的dragstart事件中,使用dataTransfer.setData来设置要传输的数据,而在目标元素的
的drop事件中,使用dataTransfer.getData来获传输的数据。
DataTransfer对象更详细的信息参考[2]
默认操作
浏览器对于拖拽操作,有默认的动作,一般应该取消默认动作。
拖放效果
拖放时,浏览器会自动生成缩略图来指示拖动效果,用户也可以用DataTransfer对象的setDragImage方法来指定自定义的拖动效果。不过此方法并不是所有浏览器都支持。
可以在目标元素的dragenter,dragover,dragleave和drop事件中,为目标元素设置不同的样式来反馈拖放操作。
其他
chrome浏览器,dragenter,dragover,dragleave事件中,event.dataTransfer.getData()函数无法获取数据,一直返回undefined,而firefox是正常的。
References:
[1]拖放操作
[2]DataTransfer
===
[erq]