dolphindb dba一些常用的维护sql

login(‘admin’, ‘123456’)
–登录dolphindb

getHomeDir()
查看本地节点的主目录,通俗理解就是我们说的安装目录

version()
查看数据库版本

创建数据库
db = database(“dfs://testdb”,RANGE,0 5 10)
–新建分布式数据库testdb,按范围分区,有两个分区:[0,5)和(5,10]
–新数据库创建后在服务器上看不到新数据库的目录,只有插入第一条数据后才能看到目录

db=database("/home/dolphindb/Data/datanode1/testdb2");
–新建非分布式数据库testdb2,数据库目录是/home/dolphindb/Data/datanode1,创建好后,可以立刻在服务器上看到testdb2的目录
–如果不加目录,则默认在软件安装目录

dropDatabase(“dfs://testdb”)
–删除分布式数据库testdb,这个函数也可以删除本地数据库
–多节点时,这个函数只能用于数据节点,不能用于控制节点,否则有报错The current node isn’t a data node and can’t run function [dropDatabase] to manipulate a dfs database.

创建表
db=database("/home/dolphindb/Data/datanode1/testdb2");
t=table(take(1…10,100) as id, rand(10,100) as x, rand(10.0,100) as y);
saveTable(db, t, `t1);
select * from t
–连接本地数据库testdb2,创建表t

db=database(“dfs://testdb3”)
t1=table(take(1…10,10) as id, rand(10,100) as x, rand(10.0,10) as y);
saveTable(db, t1);
–连接分布式数据库,创建表t1并插入数据出现报错,saveTable方式只能用于本地库,不适用于分布式数据库

db = database(“dfs://testdb”)
t=table(take(1, 86400) as id, 2020.01.01T00:00:00 + 0…86399 as timestamp, rand(1…100, 86400) as val)
dt = db.createTable(t, “dt”, {timestamp:“delta”, val:“delta”})
dt.append!(t)
select * from t
–连接分布式数据库dfs://testdb,创建表t,此时在服务器上看不到新数据库的目录,插入数据,可以在服务器上看到testdb目录,createtable才能用于分布式数据库
–数据库目录在参数volumes的目录

db = database(“dfs://testdb”)
t=table(take(1, 8) as id, 2020.01.01T00:00:00 + 0…7 as timestamp, rand(1…8, 8) as val)
pt =db.createPartitionedTable(t, “pt”, “id”)
pt.append!(t)
select * from pt
–连接分布式数据库dfs://testdb,创建分布式表pt,分布式表可以创建于本地库也可以创建于分布式数据库

db=database(“dfs://testdb”)
dropTable(db,“dt”);
–删除dfs://testdb下面的dt表
–不能直接dropTable(“dfs://testdb”,“dt”)这样删除,第一个参数必须是dbHandle数据库句柄

getAllDBs()
–当前节点上的分布式数据库

getClusterDFSDatabases()
–返回集群中所有的分布式数据库,单节点时,结果和getAllDBs()一致
–本地库通常用于学习研究,现在还没有提供查找的函数。

getClusterDFSTables()
–查询实例中所有分布式数据库的分布式表

getDFSTablesByDatabase(directory)
getDFSTablesByDatabase(“dfs://testdb4”)
–查询某个分布式数据库中的表

getTables(dbHandle)
db = database(“dfs://testdb4”)
getTables(db)
–查询某个数据库中所有的表,此数据库包括分布式数据库和本地数据库

getTabletsMeta("/testdb/*", “pt1”,true,-1)
select * from getTabletsMeta("/testdb/%",true,-1) where tableName=‘pt1’
查询testdb下pt1表各个分区占用的磁盘空间大小,单位是字节

select sum(diskUsage/1024/1024) as diskMb from getTabletsMeta("/testdb/%",true,-1) group by tableName
查询testdb下每一张表占用的磁盘空间大小

select sum(diskUsage/1024/1024) as diskMb from getTabletsMeta("/testdb/%",true,-1)
查询testdb下所有表占用的磁盘空间大小总量

监控正在执行或者队列中的作业和任务的数量。
getJobStat()

查询当前节点包含的所有会话信息
getSessionMemoryStat()
select * from getSessionMemoryStat()

查询一个小时内没有活动的会话
select * from getSessionMemoryStat() where now() - localtime(lastActiveTime) > 3600000

关闭某个会话
closeSessions(sessionId)

关闭任意一个会话
closeSessions(getSessionMemoryStat().sessionId[1]);

createUser(“u1”, “123456”)
–创建用户u1

createGroup(“g1”, [“u1”,“u2”,“u3”])
–创建用户组g1,保护u1、u2、u3三个用户

grant(“g1”, TABLE_READ, “dfs://db1/pt1”)
–授权用户或用户组g1可以访问dfs://db1/pt1 表中的数据

grant([“u1”,“u2”,“u3”], TABLE_READ, “dfs://db1/pt1”)
报错User/Group [[“u1”,“u2”,“u3”]] does not exist.–一个语句不能同时对多个用户授权
grant(“g1”, [TABLE_READ,TABLE_WRITE], [“dfs://testdb/dt1”])
报错A scalar object is expected. But the actual object is a vector.一个语句不能授权多个权限

getUserList().sort();
–除管理员之外的所有用户名称,顺序排序,createUser使用isAdmin=true创建的用户也会列出来

getGroupList().sort();
–返回所有组

getUserAccess([userIds])
–用户拥有的权限。当没有指定userId时,返回管理员的权限表
–getUserAccess([‘lukes’,‘tony’])查询lukes和tony两个用户的权限

getGroupAccess(groupIds)
–返回组的权限

deleteUser(“u1”)
–删除用户u1

getUsersByGroupId(“g1”)
–查询用户组g1下有哪些用户

deleteGroup(‘groupName1’)
–删除用户组groupName1,隶属于groupName1下面的用户不会被删除

addGroupMember(‘u4’,‘g1’)
–添加某个用户到用户组,对u4添加到g1

dolphindb里需要先加载再访问数据
dt = loadTable(“dfs://testdb4”,“pt9”)
select * from dt where date>2017.08.10
可以简写成如下,但是createTable()创建的不能这样,见备份恢复本地表
select * from loadTable(“dfs://testdb4”,“pt9”) where date>2017.08.10

getConsoleJobs()
–查询交互式作业(同步作业)信息

cancelConsoleJob(rootJobId)
–取消某个交互式作业(同步作业)

getRecentJobs(n)
–查询最近N个批处理作业状态

cancelJob(jobId)
–取消某个批处理作业

getScheduledJobs([jobIdPattern])
–查询某个定时作业,如果jobIdPattern没有指定,返回所有已有的定时作业。

deleteScheduledJob(jobId)
–删除定时作业

getClusterPerf()
–查询服务器整体内存使用情况

getSessionMemoryStat()
–查询哪些会话哪些用户消耗了内存

getPerf()
–查询性能监控度量值

table(1…5 as id, 6…10 as v)
–创建一个内存数据表

查看pt9表的备份信息
getBackupList("/home/dolphindb/dolphindb/backup",“dfs://testdb4”,“pt9”)

查看pt9表的分区/20170807/0_50的备份信息,会返回分区的chunkID号
getBackupMeta("/home/dolphindb/dolphindb/backup/diff2",“dfs://testdb4”, “/20170807/0_50”,“pt9”);

pt9是一张分区表,按日期分区
select count(*) from loadTable(“dfs://testdb4”,“pt9”) where date=2017.08.07

查询表t1对应的物理路径
select * from pnodeRun(getAllChunks) where dfsPath like ‘%t1.tbl%’

查询数据库db1下面的分区对应的物理路径
select * from pnodeRun(getAllChunks) where path like ‘%db1%’

删除分区
db = database(“dfs://testdb4”)
dropPartition(db,"/20170807/0_50");
把testdb4数据库下面的所有表的/20170807/0_50分区都删除了实际存放在磁盘上的分区目录也被删除了

查询某个分区被多少张表使用了
目前没有直接的查看方法,可以通过进入linux操作系统分区目录的情况下使用ll命令来大概获取有哪些表吧

查看表结构
schema(table_name)

删除testdb分布式数据库
dropDatabase(“dfs://testdb”)

查询所有的函数视图,即addFunctionView创建的函数视图
getFunctionViews()

mkdir("/home/dolphindb/dolphindb/backup/" + datetimeFormat(today(), “yyyyMMdd”))
创建当天日期的文件目录

shell(’/dir/linuxshell.sh’)
调用linux shell

修改用户admin的密码
resetPwd(“admin”, “XX”);

Dolphindb数据库的重启方法
1、关闭dolphindb进程
ps -ef |grep dolphindb |grep -v grep|awk ‘{print $2}’ | xargs kill -9

2、进入dolphindb安装目录,依次启动代理节点、控制节点、
2.1、启动代理节点
cd /DolphinDB/server
./startAgent.sh

2.2、启动控制节点
cd /DolphinDB/server
./startController.sh

2.3、启动数据节点
两种方法
方法1、登陆GUI,连接控制节点IP:PORT,执行startDataNode([“DFS_NODE1”, “DFS_NODE2”,“DFS_NODE3”])
方法2、使用Chrome与Firefox的浏览器打开控制节点IP:PORT,在web页面启动各个数据节点

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBA是指数据库管理员(Database Administration)的缩写,是在Microsoft SQL Server 2008系统中扮演重要角色的人员。他们的工作目标是确保SQL Server系统能够正常高效地运行。DBA的工作是相当繁忙的,包括性能优化、安全管理、备份与恢复、数据库设计和维护等方面的工作。 除了SQL Server Management Studio (SSMS)和SQL Server Profiler这两个强大的工具,还有许多其他的工具可供DBA使用。这些工具可以来自Microsoft、第三方公司甚至个人开发者,能够提供更多的功能和便利。 其中一个常用的工具是SQLdiag.exe,它是SQL Server自带的工具,用于收集系统信息。另一个工具是SqlNexus,它可以用来分析通过SQLdiag.exe收集的信息,帮助数据库管理人员定位SQL Server服务器的问题。这些工具的使用可以帮助DBA更好地管理和优化SQL Server系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SQL Server DBA工作内容详解](https://download.csdn.net/download/weixin_38592134/14833256)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SQLServerDBA十大必备工具---让生活轻松点](https://blog.csdn.net/weixin_30807779/article/details/95235766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值