D.6 Migrating an MDSYS-Owned Network to a Schema-Private Network
You can migrate an MDSYS-owned semantic network in a database to a schema-private semantic network in the same database.
The following example migrates an existing MDSYS semantic network to a shared schema-private semantic network by using SEM_APIS.MOVE_SEM_NETWORK_DATA and SEM_APIS.APPEND_SEM_NETWORK_DATA.
Example D-17 Migrating an MDSYS Semantic Network to a Shared Schema-Private Semantic Network
This example performs the following major actions.
- Creates a database user (RDFEXPIMPU), if it does not already exist in the database, that will hold the moved existing MDSYS-owned semantic network.
- Moves the existing semantic network data to the RDFEXPIMPU schema.
- Creates a administrative database user (RDFADMIN), if it does not already exist in the database, that will own the schema-private semantic network.
- Creates the schema-private semantic network, named MY_NET and owned by RDFADMIN.
- Sets up network sharing for this newly created schema-private
network.
- Grants network sharing privileges to RDFADMIN.
- Enables network sharing for all users of the old MDSYS-owned network.
- Grants access privileges to two regular database users (UDFUSER and DB_USER1). privileges to RDFADMIN.
- Appends the previously moved network data into the shared schema-private semantic network.
conn sys/<password_for_sys>
-- create a user to hold the moved semantic network
grant connect, resource, unlimited tablespace to rdfexpimpu identified by rdfexpimpu;
conn system/<password_for_system>
-- move the existing MDSYS semantic network
exec sem_apis.move_sem_network_data(dest_schema=>'RDFEXPIMPU');
-- drop the existing MDSYS semantic network
exec sem_apis.drop_sem_network(cascade=>true);
-- create schema-private semantic network to hold the MDSYS network data
conn sys/<password_for_sys>
-- create an admin user to own the schema-private semantic network
create user rdfadmin identified by rdfadmin;
grant connect,resource,unlimited tablespace to rdfadmin;
conn system/<password_for_system>
-- create the schema-private semantic network
exec sem_apis.create_sem_network(tablespace_name=>'rdf_tablespace',network_owner=>'RDFADMIN',network_name=>'MYNET');
-- setup network sharing for rdfadmin’s schema-private semantic network
-- first grant network sharing privileges to rdfadmin
exec sem_apis.grant_network_sharing_privs(network_owner=>'RDFADMIN');
-- now connect as rdfadmin and enable sharing for all users of the old MDSYS semantic network
conn rdfadmin/<password>
-- enable sharing for rdfadmin’s network
exec sem_apis.enable_network_sharing(network_owner=>'RDFADMIN',network_name=>'MYNET');
-- grant access privileges to RDFUSER
exec sem_apis.grant_network_access_privs(network_owner=>'RDFADMIN',network_name=>'MYNET',network_user=>'RDFUSER');
-- grant access privileges to DB_USER1
exec sem_apis.grant_network_access_privs(network_owner=>'RDFADMIN',network_name=>'MYNET',network_user=>'DB_USER1');
-- append the exported network into the shared schema-private semantic network
-- after this step, migration will be complete, and the new shared schema-private semantic network will be ready to use
conn system/<password_for_system>
exec sem_apis.append_sem_network_data(from_schema=>'RDFEXPIMPU',network_owner=>'RDFADMIN',network_name=>'MYNET');
Parent topic: MDSYS-Owned Semantic Network