首页 > 数据库 > > 逻辑集群-删除逻辑集群
当逻辑集群不再使用时,系统管理员可通过FusionInsight Manager将逻辑集群进行删除。

等待逻辑集群删除成功,单击“完成”。
说明:如果逻辑集群删除失败,请参见附加信息处理。
DECLARE
sql_stmt VARCHAR2(500);
my_cursor REFCURSOR;
username text;
schemaname text;
tablename text;
relkind CHAR;
BEGIN
sql_stmt := 'SELECT pg_catalog.quote_ident(rolname) FROM pg_authid JOIN pgxc_group ON pg_authid.rolnodegroup=pgxc_group.oid WHERE pgxc_group.group_kind=''v'' AND pgxc_group.group_name=''logic_cluster'' ';
OPEN my_cursor FOR EXECUTE sql_stmt;
FETCH FROM my_cursor INTO username;
WHILE my_cursor % FOUND LOOP
EXECUTE IMMEDIATE 'DROP OWNED BY '||username||' CASCADE';
FETCH FROM my_cursor INTO username;
END LOOP;
CLOSE my_cursor;
sql_stmt := 'SELECT pg_catalog.quote_ident(n.nspname) AS schemaname, pg_catalog.quote_ident(c.relname) AS tablename, c.relkind AS relkind FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace JOIN pgxc_class x ON x.pcrelid = c.oid WHERE x.pgroup=''logic_cluster'' ';
OPEN my_cursor FOR EXECUTE sql_stmt;
FETCH FROM my_cursor INTO schemaname, tablename, relkind;
WHILE my_cursor % FOUND LOOP
IF relkind = 'f' THEN
EXECUTE IMMEDIATE 'DROP FOREIGN TABLE IF EXISTS '||schemaname||'.'||tablename||' CASCADE';
ELSE
EXECUTE IMMEDIATE 'DROP TABLE IF EXISTS '||schemaname||'.'||tablename||' CASCADE';
END IF;
FETCH FROM my_cursor INTO schemaname, tablename, relkind;
END LOOP;
CLOSE my_cursor;
END;来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3119616/ ,如需转载,请注明出处,否则将追究法律责任。