Thread: create tablespaces and users

create tablespaces and users

From
Pepe TD Vo
Date:
Hello experts,

From oracle databases, I have few tablespaces and users created for that particular database.  How could I do the same for postgres? 

thank you.
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

Re: create tablespaces and users

From
Shreeyansh Dba
Date:
In PostgreSQL tablespaces and user all cluster level objects. tablespace is just another name for a folder where the Postgres server process owner (typically “postgres” system user) is the owner and can write some files. 

In PostgreSQL All objects stored in default tablespace i.e. pg_default. 
You can create or alter databases in the tablespace and assign ownership for that tablespace.

Commands use for creating user and tablespace:
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

Thanks & Regards,
Shreeyansh DBA Team
www.shreeyansh.com


On Mon, Jan 14, 2019 at 8:55 PM Pepe TD Vo <pepevo@yahoo.com> wrote:
Hello experts,

From oracle databases, I have few tablespaces and users created for that particular database.  How could I do the same for postgres? 

thank you.
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

Re: create tablespaces and users

From
Pepe TD Vo
Date:
thank you.  
so after create the database, I need to create user and tablespace with each ownership
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

what if I transfer the schemas/triggers, etc... from oracle to postgres, are they stayed the same or what?  What is the best way suggestion I need to do?

thank you.

v/r,
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Monday, January 14, 2019 10:48 AM, Shreeyansh Dba <shreeyansh2014@gmail.com> wrote:


In PostgreSQL tablespaces and user all cluster level objects. tablespace is just another name for a folder where the Postgres server process owner (typically “postgres” system user) is the owner and can write some files. 

In PostgreSQL All objects stored in default tablespace i.e. pg_default. 
You can create or alter databases in the tablespace and assign ownership for that tablespace.

Commands use for creating user and tablespace:
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

Thanks & Regards,
Shreeyansh DBA Team
www.shreeyansh.com


On Mon, Jan 14, 2019 at 8:55 PM Pepe TD Vo <pepevo@yahoo.com> wrote:
Hello experts,

From oracle databases, I have few tablespaces and users created for that particular database.  How could I do the same for postgres? 

thank you.
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


Re: create tablespaces and users

From
Shreeyansh Dba
Date:
Are you talking about migration..?? If yes, you can keep the  schema / trigger same as oracle or transfer data in different schema by creating new as per your requirement whereas the public is the default schema in PostgreSQL.

Thanks & Regards,
Shreeyansh DBA Team
www.shreeyansh.com


On Mon, Jan 14, 2019 at 9:39 PM Pepe TD Vo <pepevo@yahoo.com> wrote:
thank you.  
so after create the database, I need to create user and tablespace with each ownership
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

what if I transfer the schemas/triggers, etc... from oracle to postgres, are they stayed the same or what?  What is the best way suggestion I need to do?

thank you.

v/r,
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Monday, January 14, 2019 10:48 AM, Shreeyansh Dba <shreeyansh2014@gmail.com> wrote:


In PostgreSQL tablespaces and user all cluster level objects. tablespace is just another name for a folder where the Postgres server process owner (typically “postgres” system user) is the owner and can write some files. 

In PostgreSQL All objects stored in default tablespace i.e. pg_default. 
You can create or alter databases in the tablespace and assign ownership for that tablespace.

Commands use for creating user and tablespace:
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

Thanks & Regards,
Shreeyansh DBA Team
www.shreeyansh.com


On Mon, Jan 14, 2019 at 8:55 PM Pepe TD Vo <pepevo@yahoo.com> wrote:
Hello experts,

From oracle databases, I have few tablespaces and users created for that particular database.  How could I do the same for postgres? 

thank you.
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


Re: create tablespaces and users

From
Pepe TD Vo
Date:
yes, we want to migrate oracle to postgres with a new name of database in postgres and keep all the schemas/triggers as same as oracle, not migrate oracle to postgres using the default postgres database.
 
Do I need to build a new database name with all the tablespaces?

CREATE TABLESPACE cidr_data LOCATION '/ssd1/postgresql/data';
REATE TABLESPACE cidr_data LOCATION '/ssd1/postgresql/data';
CREATE DATABASE "CIDR"
    WITH 
    OWNER = "PSmasteruser"
    ENCODING = 'UTF8'
    LC_COLLATE = 'en_US.UTF-8'
    LC_CTYPE = 'en_US.UTF-8'
    TABLESPACE = cidr_data
    CONNECTION LIMIT = -1;

you can keep the  schema / trigger same as oracle or transfer data in different schema by creating new as per your requirement whereas the public is the default schema in PostgreSQL.

Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Monday, January 14, 2019 11:27 AM, Shreeyansh Dba <shreeyansh2014@gmail.com> wrote:


Are you talking about migration..?? If yes, you can keep the  schema / trigger same as oracle or transfer data in different schema by creating new as per your requirement whereas the public is the default schema in PostgreSQL.

Thanks & Regards,
Shreeyansh DBA Team
www.shreeyansh.com


On Mon, Jan 14, 2019 at 9:39 PM Pepe TD Vo <pepevo@yahoo.com> wrote:
thank you.  
so after create the database, I need to create user and tablespace with each ownership
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

what if I transfer the schemas/triggers, etc... from oracle to postgres, are they stayed the same or what?  What is the best way suggestion I need to do?

thank you.

v/r,
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Monday, January 14, 2019 10:48 AM, Shreeyansh Dba <shreeyansh2014@gmail.com> wrote:


In PostgreSQL tablespaces and user all cluster level objects. tablespace is just another name for a folder where the Postgres server process owner (typically “postgres” system user) is the owner and can write some files. 

In PostgreSQL All objects stored in default tablespace i.e. pg_default. 
You can create or alter databases in the tablespace and assign ownership for that tablespace.

Commands use for creating user and tablespace:
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

Thanks & Regards,
Shreeyansh DBA Team
www.shreeyansh.com


On Mon, Jan 14, 2019 at 8:55 PM Pepe TD Vo <pepevo@yahoo.com> wrote:
Hello experts,

From oracle databases, I have few tablespaces and users created for that particular database.  How could I do the same for postgres? 

thank you.
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success




Re: create tablespaces and users

From
Pepe TD Vo
Date:
what happened if I have 6 tablespaces from Oracle, should I create all tablespaces in Postgres as well?

thank you.
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Monday, January 14, 2019 11:33 AM, Pepe TD Vo <pepevo@yahoo.com> wrote:


yes, we want to migrate oracle to postgres with a new name of database in postgres and keep all the schemas/triggers as same as oracle, not migrate oracle to postgres using the default postgres database.
 
Do I need to build a new database name with all the tablespaces?

CREATE TABLESPACE cidr_data LOCATION '/ssd1/postgresql/data';
REATE TABLESPACE cidr_data LOCATION '/ssd1/postgresql/data';
CREATE DATABASE "CIDR"
    WITH 
    OWNER = "PSmasteruser"
    ENCODING = 'UTF8'
    LC_COLLATE = 'en_US.UTF-8'
    LC_CTYPE = 'en_US.UTF-8'
    TABLESPACE = cidr_data
    CONNECTION LIMIT = -1;

you can keep the  schema / trigger same as oracle or transfer data in different schema by creating new as per your requirement whereas the public is the default schema in PostgreSQL.

Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Monday, January 14, 2019 11:27 AM, Shreeyansh Dba <shreeyansh2014@gmail.com> wrote:


Are you talking about migration..?? If yes, you can keep the  schema / trigger same as oracle or transfer data in different schema by creating new as per your requirement whereas the public is the default schema in PostgreSQL.

Thanks & Regards,
Shreeyansh DBA Team
www.shreeyansh.com


On Mon, Jan 14, 2019 at 9:39 PM Pepe TD Vo <pepevo@yahoo.com> wrote:
thank you.  
so after create the database, I need to create user and tablespace with each ownership
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

what if I transfer the schemas/triggers, etc... from oracle to postgres, are they stayed the same or what?  What is the best way suggestion I need to do?

thank you.

v/r,
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Monday, January 14, 2019 10:48 AM, Shreeyansh Dba <shreeyansh2014@gmail.com> wrote:


In PostgreSQL tablespaces and user all cluster level objects. tablespace is just another name for a folder where the Postgres server process owner (typically “postgres” system user) is the owner and can write some files. 

In PostgreSQL All objects stored in default tablespace i.e. pg_default. 
You can create or alter databases in the tablespace and assign ownership for that tablespace.

Commands use for creating user and tablespace:
create user <user name>;
create tablespace <name> location '<directory path>' owner <user name>;

Thanks & Regards,
Shreeyansh DBA Team
www.shreeyansh.com


On Mon, Jan 14, 2019 at 8:55 PM Pepe TD Vo <pepevo@yahoo.com> wrote:
Hello experts,

From oracle databases, I have few tablespaces and users created for that particular database.  How could I do the same for postgres? 

thank you.
 
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success






Re: create tablespaces and users

From
Thomas Kellerer
Date:
Pepe TD Vo schrieb am 14.01.2019 um 16:24:
> From oracle databases, I have few tablespaces and users created for
> that particular database.  How could I do the same for postgres?

The question is: what was the reason to use tablespaces in Oracle? 

Most of the time I see an Oracle installation with a tablespace per user, it's to manage space more easily.

As Postgres does not store data in one huge file, this is not really relevant here. 
As soon as a table is dropped, the space is released from the filesystem. 

So just create the users and let them use the default tablespace, unless you used the tablespaces
to distribute the I/O load to different disks. 

Thomas





Re: create tablespaces and users

From
Pepe TD Vo
Date:
so you suggest not to create the tablespace and associate with the database, right?  What's about the owner?  Still postgres or create user owner?  From Oracle we have 4 schemas for cidr database.

CREATE DATABASE "CIDR"
    WITH 
    OWNER = postgres   --> or new users????
    ENCODING = 'UTF8'
    LC_COLLATE = 'en_US.UTF-8'
    LC_CTYPE = 'en_US.UTF-8'
    TABLESPACE = pg_default
    CONNECTION LIMIT = -1;
 
thank you.

Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Tuesday, January 15, 2019 2:26 AM, Thomas Kellerer <spam_eater@gmx.net> wrote:


Pepe TD Vo schrieb am 14.01.2019 um 16:24:

> From oracle databases, I have few tablespaces and users created for
> that particular database.  How could I do the same for postgres?


The question is: what was the reason to use tablespaces in Oracle?

Most of the time I see an Oracle installation with a tablespace per user, it's to manage space more easily.

As Postgres does not store data in one huge file, this is not really relevant here.
As soon as a table is dropped, the space is released from the filesystem.

So just create the users and let them use the default tablespace, unless you used the tablespaces
to distribute the I/O load to different disks.

Thomas







Re: create tablespaces and users

From
Pepe TD Vo
Date:
In Oracle, we set up each “schema”/user for each developer and/or each database login. This allowed the schema logon into their own database and create their own tables/function/triggers, etc....  How do I avoid all people logon into the postgres db but their own schema/pgsql user?

thank you.

Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Tuesday, January 15, 2019 9:42 AM, Pepe TD Vo <pepevo@yahoo.com> wrote:


so you suggest not to create the tablespace and associate with the database, right?  What's about the owner?  Still postgres or create user owner?  From Oracle we have 4 schemas for cidr database.

CREATE DATABASE "CIDR"
    WITH 
    OWNER = postgres   --> or new users????
    ENCODING = 'UTF8'
    LC_COLLATE = 'en_US.UTF-8'
    LC_CTYPE = 'en_US.UTF-8'
    TABLESPACE = pg_default
    CONNECTION LIMIT = -1;
 
thank you.

Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.
To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success


On Tuesday, January 15, 2019 2:26 AM, Thomas Kellerer <spam_eater@gmx.net> wrote:


Pepe TD Vo schrieb am 14.01.2019 um 16:24:

> From oracle databases, I have few tablespaces and users created for
> that particular database.  How could I do the same for postgres?


The question is: what was the reason to use tablespaces in Oracle?

Most of the time I see an Oracle installation with a tablespace per user, it's to manage space more easily.

As Postgres does not store data in one huge file, this is not really relevant here.
As soon as a table is dropped, the space is released from the filesystem.

So just create the users and let them use the default tablespace, unless you used the tablespaces
to distribute the I/O load to different disks.

Thomas









Re: create tablespaces and users

From
Thomas Kellerer
Date:
Pepe TD Vo schrieb am 15.01.2019 um 15:42:
> so you suggest not to create the tablespace and associate with the
> database, right?  

Correct. 
Unless you used the tablespaces for performance optimization (e.g. spreading the I/O over multiple harddisks) I suggest
tostick with the default tablespace. 
 

> What's about the owner?  Still postgres or create
> user owner?  From Oracle we have 4 schemas for cidr database.

That depends on what you want to allow the users. 

You can e.g. create 4 database and make each user the owner of that database. 
So every user has full control over their database and the data is clearly separated. 

If the users need to access tables from other users (e.g. in a JOIN), then it's best to create a single database with 4
schemas.
 
In that case "postgres" should be the database owner. 

Then create a schema for each user (making the users the owner of those schemas), and you have a setup which is very
similarto Oracle.
 

I would also revoke all grants from the public schema, so that the users don't accidentally create objects there. 

Thomas