Jump toUpdate content

Database

Let us address the most common questions you have about Database.

What is Scaleway Database?

Scaleway Database provides fully-managed relational database Instances, supporting the database engines PostgreSQL and MySQL.

The product lets you focus on development, rather than administration or configuration. It comes with high-availability mode, data replication, and automatic backups.

In comparison to traditional database management, which requires customers to provision their infrastructure and resources to manage their databases, Scaleway Database offers the user access to a database instance without the need for setting up the hardware or configuring the software. Scaleway handles the provisioning, manages the configuration, and provides useful features as high availability, Automated Backup, User management, and more.

How can I access my database once it is provisioned?

On the details page of your Instance, the IP address and your Instance’s port are shown:

It is possible to connect to your Instance from any application using the IP address and port shown in the Endpoint section and the login/password of any valid database user. This can be managed from the “users” tab.

PostgreSQL

To access your Scaleway Database for PostgreSQL Instance, use the psql command-line tool with the following command: psql -h $IP -p $PORT -U $YOUR_USER -d $DATABASE_NAME You will have to enter your password to establish the connection. The default $DATABASE_NAME to be used is rdb.

MySQL

You can access your Scaleway Database for MySQL Instance with the following command:

mysql -h $IP --port $PORT -p -u $USERNAME You will be prompted to enter your password to log in.

How do I import data into a Scaleway Database?

PostgreSQL

To import data into your Scaleway Database for PostgreSQL, export your data using the pg_dump command in a first step:

pg_dump -h OLD_DB_IP -p OLD_DB_PORT -U OLD_DB_USERNAME -F c -b -v -f "/usr/local/backup/database.backup" DATABASE_NAME

Once the data is exported, import the database using the pg_restore command:

pg_restore -h INSTANCE_IP -p INSTANCE_PORT -U USERNAME -d DATABASE_NAME -v "/usr/local/backup/database.backup"

The different parameters used in the commands represent the following values:

-h (—host): IP address of the host -p (—port): Port number of the host -U (—username): PostgreSQL user -F (—format): Format c: c just after a -F means that the format is the binary format specific to postgreSQL -b (—blobs): Specifies the binary string type -v (—verbose) -f (—file): Specifies the file name

MySQL

If you want to import your existing database into a Scaleway Database for MySQL, start by exporting your data using the command mysqldump:

mysqldump -u username -p old_database > backup.sql Then import the backup into your Scaleway Database for MySQL:

mysql -u username -p new_database < backup.sql

Which postgreSQL extensions are available?

The following pg_extensions are available for Scaleway Database:

Extension nameComment
chkpassdata type for auto-encrypted passwords
pgrowlocksshow row-level locking information
sslinfoinformation about SSL certificates
citextdata type for case-insensitive character strings
tablefuncfunctions that manipulate whole tables, including crosstab
uuid-osspgenerate universally unique identifiers (UUIDs)
pg_buffercacheexamine the shared buffer cache
intarrayfunctions, operators, and index support for 1-D arrays of integers
bloombloom access method – signature file based index
hstoredata type for storing sets of (key, value) pairs
isndata types for international product numbering standards
dict_inttext search dictionary template for integers
tsm_system_rowsTABLESAMPLE method which accepts number of rows as a limit
btree_ginsupport for indexing common datatypes in GIN
plpgsqlPL/pgSQL procedural language
tsm_system_timeTABLESAMPLE method which accepts time in milliseconds as a limit
unaccenttext search dictionary that removes accents
pgcryptocryptographic functions
intagginteger aggregator and enumerator (obsolete)
pg_freespacemapexamine the free space map (FSM)
pgstattupleshow tuple-level statistics
pg_trgmtext similarity measurement and index searching based on trigrams
cubedata type for multidimensional cubes
dblinkconnect to other PostgreSQL databases from within a database
fuzzystrmatchdetermine similarities and distance between strings
earthdistancecalculate great-circle distances on the surface of the Earth
dict_xsyntext search dictionary template for extended synonym processing
btree_gistsupport for indexing common datatypes in GiST
pg_visibilityexamine the visibility map (VM) and page-level visibility info
ltreedata type for hierarchical tree-like structures
pg_prewarmprewarm relation data
postgisPostGIS geometry, geography, and raster spatial types and functions
address_standardizer_data_usAddress Standardizer US dataset example
address_standardizerUsed to parse an address into constituent elements. Generally used to support geocoding address normalization step.
postgis_sfcgalPostGIS SFCGAL functions
postgis_topologyPostGIS topology spatial types and functions
postgis_tiger_geocoderPostGIS tiger geocoder and reverse geocoder
postgres_fdwThe postgres_fdw module provides the foreign-data wrapper postgres_fdw, which can be used to access data stored in external PostgreSQL servers.
postgis_rasterPostGIS Raster implements the RASTER type like the GEOMETRY type support in PostGIS
pgroutingpgRouting extends the PostGIS / PostgreSQL geospatial database to provide geospatial routing functionality
ogr_fdwOGR is the vector half of the GDAL spatial data access library
timescaledbenable handling of time-series data

How do I backup my database?

If the automatic backup feature is enabled, new backups will be created according to your backup schedule, which can be set on the “Instance overview” tab. Your Instance is available during backup, but there might be a performance impact and some actions may not be available. Automatic backups are enabled by default. It is possible to disable them at any time in the backup settings of your Instance. It is also possible to launch manual backups by clicking on the Create a backup button from the backups tab.

What is the Private Networks feature for Database Instances?

Private Networks allows you to configure your own Layer-2 network with IPv4 adresses. You can therefore enhance the security of your system architecture by isolating it from the Internet.

This feature introduces a significant change in the architecture of Scaleway’s Managed Databases: when using Private Networks, your application connects directly to your Database nodes, without going through a Load Balancer. This improves performance by reducing the latency between your nodes. It also increases the security of your databases, since Instances in your Private Network can directly to your Database Instance, without passing through the public Internet.

You can create new Database Instances to attach to your Private Network, or attach existing Database Instances by adding Private Networks endpoints to them.

How many Private Networks can I attach?

Currently, you can connect one Private Network to each Database Instance.

Can I use any IP Range for my Private Network?

For now, only the RFC1918 IP subnets are accepted as Database Instances virtual IPv4.

How is the Database’s private failover IP managed?

The virtual IPv4 used to expose the Database Instance service is automatically routed to the new promoted node and announced within 10s to the neighboring Compute Instances.

Can I remove the Load Balancer endpoint from my Database Instance?

You can not remove the Load Balancer endpoint from your Database Instance, but you can block all access by emptying the allowed IPs list from the console or via the API.

Can I limit the IPs allowed to reach my Database Instance on a Private Network?

It is not possible to limit access to a Database Instance on a Private Network. We recommend that you create a dedicated Private Network for your Database Instances and add only the relevant middleware application Instances to this Private Network.

Can I add an IPv6 to my Database Instance?

IPv6 is not supported with Private Networks on Database Instances.

In what regions is the Private Networks feature available for Managed Databases

Private Networks is available for Database Instances in PAR1, AMS1 and WAW1.

Currently, you cannot connect PAR2 or PAR3 Instances to a Database Instance located in the Paris region using Private Networks.

RDB RegionPrivate Network Region
Amsterdam (nl-ams)nl-ams-1 «Validate Icon»
Paris (fr-par)fr-par-1 «Validate Icon»
fr-par-2 «Cancel Icon»
fr-par-3 «Cancel Icon»
Warsaw (pl-waw)pl-waw-1 «Validate Icon»

Can I assign a Database virtual IP with DHCP?

No, you need to provide a static IPv4 with CIDR notation on the same subnet as the one configured on your Private Network.

Tip:

You can use the Database virtual IP (VIP) in a DHCP-controlled environnement by reserving the IP in the DHCP server configuration to be sure it is not assigned to any other Instance, then configure it on the Private Networks endpoint.

How to update my Service IP once the endpoint created?

You need to delete and recreate the endpoint with the new Service IP

What should I use as virtual IP? How do I calculate the CIDR netmask?

CIDR notation is the shortest notation containing required information to configure the endpoint: IP address and network mask. The network mask part is required for IP routing purposes. You may use a network calculator if required.

Examples:

Network AddressNetmask (Dotted Quad)Netmask (CIDR)First usable host IP addressLast usable host IP addressExample VIP
192.168.0.0/24255.255.255.024192.168.0.1192.168.0.254192.168.0.33/24
10.18.0.0/16255.255.0.01610.18.0.110.18.255.25410.18.21.42/16
192.168.18.0/26255.255.255.19226192.168.18.1192.168.18.63192.168.18.37/26