SequoiaDB命令行的储存过程、日志审计

储存自定义函数

简单例子

db = new Sdb()
创建函数
db.createProcedure( function sum(x,y){return x+y;} ) 
调用函数
var i = db.eval( "sum(10,15)" )
print(i)
删除函数
db.removeProcedure( "sum" )

编写js复制一个CL

procedure.js

db = new Sdb();
db. createProcedure(
	function copyCL(_pcs, _pcl, _lcs, _lcl){
		var pcl = db.getCS(_pcs).getCL(_pcl);
		var lcl = db.getCS(_lcs).getCL(_lcl);
		var i = 0;
		var bulkInsertNum = 1024;
		var recordArr = [];
		var cursor = pcl.find();
		while(cursor.next()){
			i++;
			recordArr.push(cursor.current().toObj());
			if(recordArr.length >= bulkInsertNum){
				lcl.insert(recordArr);
				recordArr = [];
				print("insert" + i + "records");
			}
		}
		if(recordArr.length != 0){
			lcl.insert(recordArr);
			recordArr = [];
			print("insert" + i + "records");
		}
	}
)

运行

bin/sdb -f procedure.js
- shell环境:
db.eval("copyCL('foo','bar','foo1','bar')")

为什么要专门写一个文件?

  • 提高代码的复用性
  • 在SDB Shell环境中,不支持代码换行,难以编写复杂的存储过程

日志审计

开启日志审计
vi SequoidDB_HOME/conf/local/11810/sdb.conf在协调节点的conf文件添加一行auditmask=ALL

原理

db = new Sdb()其实就是连接到本地的协调节点
而此时,协调节点的日志就会开始记录
所以,如果你不连接到其他节点去操作数据库的话,没有必要去开启其他节点的日志审计功能
只需要开启协调节点的日志审计功能即可,其他节点的不必开启

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值